服务器/客户端服务器连接
问题描述:
我有一个服务器端程序,用于创建侦听服务器端套接字。发生的问题是,好像客户端发送一个连接请求,如果服务器端套接字正在监听,它将被拒绝,但如果服务器端程序未在运行,则连接请求将被连接。我可以在调试时看到服务器端程序获取客户端请求。看起来好像客户端无法连接到侦听套接字。有关决议的任何建议?服务器/客户端服务器连接
服务器端接受代码片段就是这样。
void CSocketListen::OnAccept(int nErrorCode)
{
CSocket::OnAccept(nErrorCode);
CSocketServer* SocketPtr = new CSocketServer();
if (Accept(*SocketPtr))
{
// add to list of client sockets connected
}
else
{
delete SocketPtr;
}
The client side code connect is like this.
SOCKET cellModem;
sockaddr_in handHeld;
handHeld.sin_family = AF_INET; //Address family
handHeld.sin_addr.s_addr = inet_addr("127.0.0.1");
handHeld.sin_port = htons((u_short)1113); //port to use
cellModem=socket(AF_INET,SOCK_STREAM,0);
if(cellModem == INVALID_SOCKET)
{
// log socket failure
return false;
}
else
{
// log socket success
}
if (connect(cellModem,(const struct sockaddr*)&handHeld, sizeof(handHeld)) != 0)
{
// log socket connection success
}
else
{
// log socket connection failure
closesocket(cellModem);
}
答
这听起来像是该端口被其他东西打开?你能证实你没有争夺同一个港口吗?
我想我们需要看到更多的代码... – 2012-08-24 07:45:28