Socket学习select服务器最简单的客户端

int _tmain(int argc, _TCHAR* argv[])
{
//初始化Winsock
WSADATA wsaDATA;
WORD version = MAKEWORD(2, 0);
int ret = WSAStartup(version, &wsaDATA);
if(ret != 0)
cout << "初始化失败!" << endl;


    SOCKET m_hSocket;
SOCKADDR_IN m_addr;


//创建新的套接字,这里是创建的流类型的套接字
m_hSocket = socket(AF_INET, SOCK_STREAM,0);


m_addr.sin_family = AF_INET;
m_addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
m_addr.sin_port = 1234;


//这里主动连接服务器,该过程将等待一定时间
ret = 0;
int error = 0;
ret = connect(m_hSocket, (LPSOCKADDR)&m_addr, sizeof(m_addr));
if(ret == SOCKET_ERROR){
cout << "连接失败:" << (error = WSAGetLastError()) << endl;
if(error == 10061)
cout << "请确认服务器确实已经打开并工作在同样的端口!" << endl;
system("pause");
return 0;
}


while(1)
{
//发送数据到服务器
string buf1;
cin >> buf1;
ret = send(m_hSocket, buf1.c_str(), buf1.size(), 0);
if(ret != buf1.size()){
cout << "发送数据失败:" <<  WSAGetLastError() << endl;
system("pause");
return 0;
}


//等待服务器的响应
char buff[256];
ret = recv(m_hSocket, buff, 256, 0);
if(ret == 0){
cout << "接收数据失败:" << WSAGetLastError() << endl;
system("pause");
return 0;
}
buff[ret] = '\0';
cout << buff << endl;
}


system("pause");


return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值