1、使用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();
}
|