简单Socket编程

01 server端:
02    
03 #include <WINSOCK2.H>
04 #include <stdio.h>
05 #pragma comment(lib,"ws2_32.lib")
06 void main()
07 {
08   //创建套接字
09   WORD myVersionRequest;
10   WSADATA wsaData;
11   myVersionRequest=MAKEWORD(1,1);
12   int err;
13   err=WSAStartup(myVersionRequest,&wsaData);
14   if (!err)
15   {
16    printf ( "已打开套接字/n" );
17   }
18   else
19   {
20    //进一步绑定套接字
21    printf ( "嵌套字未打开!" );
22    return ;
23   }
24   SOCKET serSocket=socket(AF_INET,SOCK_STREAM,0); //创建了可识别套接字
25   //需要绑定的参数
26   SOCKADDR_IN addr;
27   addr.sin_family=AF_INET;
28   addr.sin_addr.S_un.S_addr=htonl(INADDR_ANY); //ip地址
29   addr.sin_port=htons(6000); //绑定端口
30    
31   bind(serSocket,(SOCKADDR*)&addr, sizeof (SOCKADDR)); //绑定完成
32   listen(serSocket,5); //其中第二个参数代表能够接收的最多的连接数
33    
34   //
35   //开始进行监听
36   //
37   SOCKADDR_IN clientsocket;
38   int len= sizeof (SOCKADDR);
39   while (1)
40   {
41    SOCKET serConn=accept(serSocket,(SOCKADDR*)&clientsocket,&len); //如果这里不是accept而是conection的话。。就会不断的监听
42    char sendBuf[100];
43     
44    sprintf (sendBuf, "welcome %s to bejing" ,inet_ntoa(clientsocket.sin_addr)); //找对对应的IP并且将这行字打印到那里
45    send(serConn,sendBuf, strlen (sendBuf)+1,0);
46    char receiveBuf[100]; //接收
47    recv(serConn,receiveBuf, strlen (receiveBuf)+1,0);
48    printf ( "%s/n" ,receiveBuf);
49    closesocket(serConn); //关闭
50   WSACleanup(); //释放资源的操作
51   }
52 }
53    
54    
55    
56 client端:
57    
58  
59 #include <WINSOCK2.H>
60 #include <stdio.h>
61 #pragma comment(lib,"ws2_32.lib")
62 void main()
63 {
64   int err;
65   WORD versionRequired;
66   WSADATA wsaData;
67   versionRequired=MAKEWORD(1,1);
68   err=WSAStartup(versionRequired,&wsaData); //协议库的版本信息
69   if (!err)
70   {
71    printf ( "客户端嵌套字已经打开!/n" );
72   }
73   else
74   {
75    printf ( "客户端的嵌套字打开失败!/n" );
76    return ; //结束
77   }
78   SOCKET clientSocket=socket(AF_INET,SOCK_STREAM,0);
79   SOCKADDR_IN clientsock_in;
80   clientsock_in.sin_addr.S_un.S_addr=inet_addr( "127.0.0.1" );
81   clientsock_in.sin_family=AF_INET;
82   clientsock_in.sin_port=htons(6000);
83   //bind(clientSocket,(SOCKADDR*)&clientsock_in,strlen(SOCKADDR));//注意第三个参数
84   //listen(clientSocket,5);
85   connect(clientSocket,(SOCKADDR*)&clientsock_in, sizeof (SOCKADDR)); //开始连接
86   char receiveBuf[100];
87   recv(clientSocket,receiveBuf,101,0);
88   printf ( "%s/n" ,receiveBuf);
89   send(clientSocket, "hello,this is client" , strlen ( "hello,this is client" )+1,0);
90   closesocket(clientSocket);
91   WSACleanup();
92 }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值