使用c++TCP /IP 编程 ,socket

使用c++TCP /IP 编程 ,socket 或者 RemoteFuncationsCall 远程方法调用 (RPC)。 
2、服务器端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"WS2_32.lib")
void  main()
{
     WSADATA wsd;
     SOCKET server;                                             //服务器socket
     SOCKADDR_IN addrSrv;    
     char  sendBuf[100];
     char  recvBuf[100];
     SOCKADDR_IN addrClient;
     SOCKET client;                                             //连接的客户端socket
     int  len;
     if (WSAStartup(MAKEWORD(2,2),&wsd)!=0)
     {
         printf ( "启动失败!\n" );
         return  ;
     }
     server=socket(AF_INET,SOCK_STREAM,0);                     //创建socket
     addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);             //设置地址
     addrSrv.sin_family=AF_INET;
     addrSrv.sin_port=htons(6000);                             //设置端口号
     bind(server,(SOCKADDR*)&addrSrv, sizeof (SOCKADDR));         //绑定
     listen(server,5);                                         //设置最多连接数
     len= sizeof (SOCKADDR);
     while (1)
     {
         client=accept(server,(SOCKADDR*)&addrClient,&len);     //接收客户端连接
         sprintf (sendBuf, "Welcome %s " ,
         inet_ntoa(addrClient.sin_addr));
         send(client,sendBuf, strlen (sendBuf)+1,0);             //发送信息客户端
         recv(client,recvBuf,100,0);                             //接收客户端数据
         printf ( "%s\n" ,recvBuf);
         closesocket(client);
     }
     closesocket(client);                                     //关闭连接
     WSACleanup();
}

3、客户端:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <winsock2.h>
#include <stdio.h>
#pragma comment(lib,"WS2_32.lib")
void  main()
{
     WSADATA wsd;
     SOCKET sockClient;                                             //客户端socket
     SOCKADDR_IN addrSrv;
     char  recvBuf[100];
     if (WSAStartup(MAKEWORD(2,2),&wsd)!=0)
     {
         printf ( "start up failed!\n" );
         return  ;
     }
     sockClient=socket(AF_INET,SOCK_STREAM,0);                     //创建socket
     addrSrv.sin_addr.S_un.S_addr=inet_addr( "127.0.0.1" );
     addrSrv.sin_family=AF_INET;
     addrSrv.sin_port=htons(6000);
     connect(sockClient,(SOCKADDR*)&addrSrv, sizeof (SOCKADDR));     //连接服务器端
     recv(sockClient,recvBuf,100,0);                                 //接收服务器端数据
     printf ( "%s\n" ,recvBuf);
     send(sockClient, "hello world" , strlen ( "hello world" )+1,0);     //向服务器端发送数据
     closesocket(sockClient);                                     //关闭连接
     WSACleanup();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值