资源简介
zw_selectChat.zip

代码片段和文件信息
///客户端
#include
#include
#include
using namespace std;
#pragma comment(lib“ws2_32.lib“)
DWORD WINAPI Recv( LPVOID lpParameter);
bool socketSelect(SOCKET socketint Timeoutbool Read);
char recvBuf[100]=“0“;//accept the information
char getInput[100]=“0“;//store the input
SOCKET soc=NULL;
SOCKADDR_IN sockSrv;
int main()
{
HANDLE hThread;
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested=MAKEWORD(11);
err=WSAStartup(wVersionRequested&wsaData);
if(err!=0)
{
return 0;
}
if(LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1 )
{
WSACleanup();
return 0;
}
soc=socket(AF_INETSOCK_STREAMIPPROTO_TCP);
sockSrv.sin_addr.S_un.S_addr=inet_addr(“211.80.203.73“);
sockSrv.sin_family=AF_INET;
sockSrv.sin_port=htons(6000);
int con=connect(soc(sockaddr*)&sockSrvsizeof(SOCKADDR));//connect to the server avaliable
if(con==SOCKET_ERROR)
{
cout<<“connect error!“< return 0;
}
//the second stage
hThread=CreateThread(NULL0RecvNULL0NULL);
while(getInput!=“q“)
{
cout<<“please input your words:“< cin>>getInput;
if(socketSelect(soc1000false)&&getInput!=NULL)
{
send(socgetInputstrlen(getInput)+10);
}
}
closesocket(soc);//close immediately
WSACleanup();
return 0;
}
DWORD WINAPI Recv( LPVOID lpParameter)
{
while(1)
{
//recv(socrecvBuf1000);
//cout< //memset(recvBuf0sizeof(recvBuf));
if(socketSelect(soc1000true))
{
int i=recv(socrecvBuf1000);
if(i>0)
{
cout< memset(recvBuf0sizeof(recvBuf));
}
else
{
cout<<“the server has been shut down! please log in again!“< break;
}
}
}
return 0;
}
bool socketSelect(SOCKET socketint nTimeoutbool bRead)
{
fd_set fdset;
timeval tv;
FD_ZERO(&fdset);
FD_SET(soc&fdset);
nTimeout=(nTimeout>1000?1000:nTimeout);
tv.tv_sec=0;
tv.tv_usec=nTimeout;
int iRet=0;
if(bRead)
{
iRet=select(0&fdsetNULLNULL&tv);
}
else
{
iRet=select(0NULL&fdsetNULL&tv);
}
if(iRet <= 0) {
return FALSE;
} else if (FD_ISSET(soc &fdset)){
return TRUE;
}
return false;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2387 2019-01-05 23:51 \selectChat.cpp
文件 36 2019-01-05 23:51 \no.txt
相关资源
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
- 联想启天M4350 BIOS升级文件
评论
共有 条评论