win32網絡通訊代碼

使用XP寫服務程序:

1.包含頭文件

#include<WinSock2.h>//Winsock庫
#pragma comment(lib,"Ws2_32.lib")

2.UDP通訊代碼

//載入初始化winsock庫
 WSADATA wsaData;
 WSAStartup(MAKEWORD(2,0),&wsaData);

 //(1)創建UDP套接字sLocal
 SOCKET sLocal = socket(
  AF_INET,//地址家族,Winsock中必須爲AF_INET
  SOCK_DGRAM,//SOCK_DGRAM表示UDP套接字
  0);
 //(2)綁定套接字
 sockaddr_in addLocal;
 addLocal.sin_family = AF_INET;//地址家族,Winsock中必須爲AF_INET
 addLocal.sin_port = htons(8000);//端口,但是需要轉換爲網絡字節序
 addLocal.sin_addr.S_un.S_addr = htonl(192.168.0.211);//本地任意IP地址INADDR_ANY
 bind(sLocal,(sockaddr*)&addLocal,sizeof(sockaddr));

 //(3)使用recvfrom與sendto收發數據
 SOCKADDR_IN addrRemote;
 int len = sizeof(SOCKADDR);
 char buf[255] = {0};
 while(1)
 {
  recvfrom(
   sLocal,//通信套接字
   buf,//接受數據的緩衝區
   255,//緩衝區大小
   0,//通常設置爲0
   (SOCKADDR*)&addrRemote,//接受遠程地址
   &len);//地址結構體大小
  printf("%s/n",buf);
  /*
  sendto(
   sLocal,//通信套接字
   "Hello",//要發送的數據
   sizeof("Hello"),//數據長度
   0,//通常設置爲0
   (SOCKADDR*)&addrRemote,//發送的地址
   sizeof(SOCKADDR));//地址大小
   */
 }
 //(4)關閉套接字
 closesocket(sLocal);
 //卸載庫
 WSACleanup();

 

 

下面是在WinCE下實現的客戶端程序

1.包含的頭文件

#include <WinSock2.h>//Winsock庫
#pragma comment(lib,"Ws2.lib")

 

2.UDP通訊代碼

WSADATA wsaData;
 WSAStartup(MAKEWORD(2,0),&wsaData);
 //(1)創建UDP套接字sLocal
 SOCKET sLocal = socket(
  AF_INET,//地址家族,Winsock中必須爲AF_INET
  SOCK_DGRAM,//SOCK_DGRAM表示UDP套接字
  0);

 //(2)使用recvfrom與sendto收發數據
 SOCKADDR_IN addrRemote;
 addrRemote.sin_family = AF_INET;//地址家族,Winsock中必須爲AF_INET
 addrRemote.sin_port = htons(8000);//端口,不能爲依據打開的端口
 addrRemote.sin_addr.S_un.S_addr = inet_addr("192.168.0.21");//服務器IP地址

 int len = sizeof(SOCKADDR);
 char buf[255] = {0};
 sendto(
  sLocal,//通信套接字
  "Hello Server",//要發送的數據
  sizeof("Hello Server"),//數據長度
  0,//通常設置爲0
  (SOCKADDR*)&addrRemote,//發送的地址
  sizeof(SOCKADDR));//地址大小
 printf("Hello Server");
 /*
 recvfrom(
  sLocal,//通信套接字
  buf,//接受數據的緩衝區
  255,//緩衝區大小
  0,//通常設置爲0
  (SOCKADDR*)&addrRemote,//接受遠程地址
  &len);//地址結構體大小
 printf("%s/n",buf);
 */
while(1)
{

}
 //(3)關閉套接字
 closesocket(sLocal);
 WSACleanup();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章