socket编程

/* //客户端
#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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值