socket10055错误问题求教
socket通信处理流程如下:
1 需要通信时调用一函数f1;
2 函数f1里起一个发送和接收用的线程,线程resume后在函数里循环等待线程结束,然后处理接收到的信息;
3 线程执行时做如下处理:
创建: socket1=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
设置超时: setsockopt(socket1, SOL_SOCKET, SO_RCVTIMEO, @Time,sizeof(TimeOut));
连接:li := connect(socket1, sa_in_svr, sizeof(sockaddr_in));
发送数据:send(socket1, (pchar(infostr))^,Length(infostr), 0);
循环接收数据:
repeat
ret := recv(socket1, Buffer, sizeof(Buffer) - 1, 0);
//这里进行接收后的一些处理
until ret = 0;
关闭连接:closesocket(ClientSocket);
现在出现的现象时,当多次与服务器通信时,有的成功,有的失败,失败原因都是在connect时报10055错误,无法将报文发送给服务器。成功与失败交叉出现。
不知道问题出在那里。希望知道的给指点下,谢谢了!