/* //客户端
#pragma comment(lib, "ws2_32")
#include <winsock2.h>
#include <stdio.h>
#include <assert.h>
int main()
{
WSADATA wsaData;
::WSAStartup(0x0202,&wsaData);//init
SOCKET sLocal=socket(AF_INET,SOCK_STREAM,0);
sockaddr_in addrServer;
addrServer.sin_family=AF_INET;
addrServer.sin_port=htons(8000);// 转为网络字节序
addrServer.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
connect(sLocal,(sockaddr*)&addrServer,sizeof(sockaddr));
send(sLocal,"hello server",sizeof("hello server"),0);
char buf[255]={0};
recv(sLocal,buf,sizeof(buf),0);
printf("%s\n",buf);
closesocket(sLocal);
system("pause");
return 0;
}
*/
#pragma comment(lib, "ws2_32")
#include <winsock2.h>
#include <stdio.h>
#include <assert.h>
#include <iostream>
using namespace std;
int main()
{ bool run=true;
::WSADATA wsadata;
::WSAStartup(0x0202, &wsadata);
SOCKET slisten=socket(AF_INET,SOCK_STREAM,0);//SOCK_STREAM means it is TCP server,我们创建一个TCP套接字
::sockaddr_in sctAddr;//绑定本地端口
sctAddr.sin_family=AF_INET;//rarely changes
sctAddr.sin_port=htons(8000);//设端口为8000
sctAddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//本地任意ip
bind(slisten,(sockaddr*)&sctAddr,sizeof(sockaddr));
listen(slisten,2);//开始监听
sockaddr_in addrRemote;//远程地址
int nLen=sizeof(addrRemote);
while(true)
{
SOCKET sClient=accept(slisten,(sockaddr*)&addrRemote,&nLen);
char buf[255]={0};
recv(sClient,buf,sizeof(buf),0);
for(int i=0;i<sizeof(buf);i++)
{
cout<<buf[i]<<" ";
}
send(sClient,"hello",sizeof("hello"),0);
}
::closesocket(slisten);
WSACleanup();
system("pause");
return 0;
}
socket编程
最新推荐文章于 2021-09-12 15:16:51 发布