您的位置:首页 > 理论基础 > 计算机网络

网络编程 TCP

2015-07-27 16:45 746 查看
from /article/1711112.html

参考孙鑫视频...

1、服务器端程序
#include <WinSock2.h>
#include <stdio.h>

int main()
{
//加载套接字库,1.1版本
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 1, 1 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return 0;
}

if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
{
WSACleanup( );
return 0;
}

//创建套接字
SOCKET sockSrv = socket(AF_INET,SOCK_STREAM,0);
//bind,将套接字绑定到一个本地地址和端口上
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(6000);

bind(sockSrv,(SOCKADDR *)&addrSrv,sizeof(SOCKADDR));
//监听
listen(sockSrv,5);
//accept 接收
SOCKADDR_IN addrCli;//用于接收从客户端传来的地址信息和端口信息
int len = sizeof(SOCKADDR);

while(true)
{
SOCKET sockCli = accept(sockSrv,(SOCKADDR *)&addrCli,&len);//用此次返回的套接字进行通信
char sendBuf[100];
sprintf(sendBuf,"welcome %s to http://www.sau.com",inet_ntoa(addrCli.sin_addr)); send(sockCli,sendBuf,sizeof(sendBuf)+1,0);

char recvBuf[100];
recv(sockCli,recvBuf,sizeof(recvBuf),0);
printf("%s\n",recvBuf);
closesocket(sockCli);

}

}


2、客户端程序

<pre name="code" class="cpp">#include <WinSock2.h>
#include <stdio.h>

int main()
{
//加载套接字库,1.1版本
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 1, 1 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return 0;
}

if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
{
WSACleanup( );
return 0;
}
//创建套接字
SOCKET sockClinet = socket(AF_INET,SOCK_STREAM,0);
//
SOCKADDR_IN addrSer;//要发送给的服务端的地址信息和端口号
addrSer.sin_addr.S_un.S_addr = inet_addr("59.73.163.254");
addrSer.sin_family = AF_INET;
addrSer.sin_port = htons(6000);
//连接
connect(sockClinet,(SOCKADDR *)&addrSer,sizeof(SOCKADDR));

char recvBuf[100];
recv(sockClinet,recvBuf,100,0);
printf("%s\n",recvBuf);
send(sockClinet,"this is liushuanpeng",strlen("this is liushuanpeng")+1,0);

closesocket(sockClinet);
WSACleanup();//终止套接字库的使用

}



3、程序编写流程:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: