linux與windows間socket通訊例項

2021-06-11 21:28:56 字數 1953 閱讀 8414

linux端:

#include #include #include #include #include #include #include #include #define myport 3333

#define backlog 10

main()

my_addr.sin_family = af_inet;

my_addr.sin_port = htons(myport);

my_addr.sin_addr.s_addr = htonl(inaddr_any);

bzero(&(my_addr.sin_zero),0);

if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))== -1)

if (listen(sockfd, backlog) == -1)

while(1)

printf("server: got connection from %s\n",inet_ntoa(their_addr.sin_addr));

if (!fork())

close(new_fd);

while(waitpid(-1,null,wnohang) > 0);

}}

window端:

//#include "stdafx.h"

#include//#include//#include #include#pragma comment (lib,"ws2_32.lib")

#include//using namespace std;

int _tmain(int argc, _tchar* argv)

//終止對winsock庫的使用

//if(lobyte(wsadata.wversion)!=1|| hibyte(wsadata.whighversion)!=1)

// //typedef unsigined int socket;//建立用與監聽的套接字

socket socketclient=socket(af_inet,sock_stream,0); //0表示讓系統自己選擇協議

//定義位址結構體//填入伺服器端的ip位址和埠號

sockaddr_in addrsrv;

//轉換為tcp/ip network byte order //32bit

addrsrv.sin_addr.s_un.s_addr=inet_addr("172.17.51.81"); //ip 172.17.51.81

addrsrv.sin_family=af_inet; //family address

addrsrv.sin_port=htons(3333); //16bit埠號

printf("connect to server...\n");

i=connect(socketclient,(sockaddr *)&addrsrv,sizeof(sockaddr_in)); //指向要建立連線的資料結構

if(i<0)

recv(socketclient,recvbuffer,255,0);

printf("%s\n",recvbuffer); //send(socketclient,recvbuffer,20,0);

closesocket(socketclient);

wsacleanup();

return 0;}注:

1、windows下控制台程式,需要注意加鏈結庫ws2_32.lib

2、檔名以cpp結尾,解決socket等符號找不到問題

3、#include解決exit符號找不到問題

4、補充第1點:#pragma comment (lib,"ws2_32.lib")

bark app在Windows與ios間實現接力

如何使用 執行 bark 後,我們會在應用內看到許多鏈結,它們均以https 伺服器 裝置識別碼 推送內容為格式。其中,裝置識別碼最為重要,它直接決定了我們會將資訊推送給誰。將你想推送的內容替換掉鏈結中的推送內容字段,在瀏覽器中開啟此鏈結便可在ios裝置上收到推送。如何確保個人資訊保安?軟體自帶的服...

windows下程序間通訊與執行緒間通訊

程序間通訊 只需簡單的指標操作就可讀取和修改檔案的內容。win32 api允許多個程序訪問同一檔案對映物件,各個程序在它自己的位址空間裡接收記憶體的指標通過使用這些指標,不同程序就可以讀或修改檔案的內容,實現對檔案中資料的共享。檔案對映是在多個程序間共享資料的非常有效方法,有較好的安全性。但檔案對映...

Linux和Windows間的UDP通訊

udp user datagram protocol 的中文叫使用者資料報協議,屬於傳輸層。udp是面向非連線的協議,它不與對方建立連線,而是直接把我要發的資料報發給對方。所以udp適用於一次傳輸資料量很少 對可靠性要求不高的或對實時性要求高的應用場景。正因為udp無需建立類如三次握手的連線,而使得...