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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值