//Server
struct sockaddr_in tcpaddr;
int port = atoi(m_sPort);
if(m_skServer != -1)
{
closesocket(m_skServer);
m_skServer = -1;
}
m_skServer = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if( INVALID_SOCKET == m_skServer)
{
AfxMessageBox("socket() Error!!");
m_skServer = -1;
return -1;
}
tcpaddr.sin_family = AF_INET;
tcpaddr.sin_port = htons(port);
tcpaddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
if( SOCKET_ERROR == bind(m_skServer,(SOCKADDR*)&tcpaddr,sizeof(tcpaddr)))
{
closesocket(m_skServer);
m_skServer = -1;
AfxMessageBox("bind() Error!!");
return -1;
}
if( SOCKET_ERROR == listen(m_skServer,5) )
{
closesocket(m_skServer);
m_skServer = -1;
AfxMessageBox("listen() Error!!");
return -1;
}
SOCKET s = accept(...);
.....
//Client
struct sockaddr_in server;
m_skClient = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(m_skClient == INVALID_SOCKET)
{
m_skClient = -1;
return FALSE;
}
server.sin_family = AF_INET;
server.sin_port = atoi(port);
server.sin_addr.S_un.S_addr = inet_addr(ip);
if( SOCKET_ERROR ==
connect(m_skClient,(struct sockaddr*)&server,
sizeof(server)))
{
int Err = WSAGetLastError();
CString err;
err.Format("Connect Error!! %d",Err);
AfxMessageBox(err);
return FALSE;
}
当connect()时,Err总是=100061;请看看怎么回事
struct sockaddr_in tcpaddr;
int port = atoi(m_sPort);
if(m_skServer != -1)
{
closesocket(m_skServer);
m_skServer = -1;
}
m_skServer = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if( INVALID_SOCKET == m_skServer)
{
AfxMessageBox("socket() Error!!");
m_skServer = -1;
return -1;
}
tcpaddr.sin_family = AF_INET;
tcpaddr.sin_port = htons(port);
tcpaddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
if( SOCKET_ERROR == bind(m_skServer,(SOCKADDR*)&tcpaddr,sizeof(tcpaddr)))
{
closesocket(m_skServer);
m_skServer = -1;
AfxMessageBox("bind() Error!!");
return -1;
}
if( SOCKET_ERROR == listen(m_skServer,5) )
{
closesocket(m_skServer);
m_skServer = -1;
AfxMessageBox("listen() Error!!");
return -1;
}
SOCKET s = accept(...);
.....
//Client
struct sockaddr_in server;
m_skClient = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(m_skClient == INVALID_SOCKET)
{
m_skClient = -1;
return FALSE;
}
server.sin_family = AF_INET;
server.sin_port = atoi(port);
server.sin_addr.S_un.S_addr = inet_addr(ip);
if( SOCKET_ERROR ==
connect(m_skClient,(struct sockaddr*)&server,
sizeof(server)))
{
int Err = WSAGetLastError();
CString err;
err.Format("Connect Error!! %d",Err);
AfxMessageBox(err);
return FALSE;
}
当connect()时,Err总是=100061;请看看怎么回事
解决方案 »
- 怎么能在有连接请求时 服务器端自动产生提示
- SendMessage(WM_CLOSE,0,0); 程序崩溃.........
- 请问ListCtrl在选择行发生变换的时候,如何在Notify消息响应函数中阻止变换
- ******你们手里的<<Windows网络编程技术>>多少钱买的啊??
- 我要把tc的可执行程序加到我用vc编的应用程序中来,怎么做?
- 有谁知道这个奇怪的问题,关于多线程的 sleep(xx) 的用法?
- 给点建议:-----关于结构体的定义
- 难题!请高手帮忙。
- 外行提问:如何用dll显示图形界面
- 关于VS2010 CFile 读取.doc文件出现乱码
- folder dialog
- 求波形条的图片(在线等待)
server.sin_port = atoi(port);
inet_addr(ip);
Server
port = atoi(m_sPort);if (port == m_sPort && ip == ServAddr);
)
the program is correct
else
{
the program is incorrect
port = m_sPort
ip = ServAddr
}
你可以把断点分别设在Conncet 和Accept处,看看Connect 和Accept的执行结果是什么
http://www.betajin.com/alphasun/index.htm 给我发信息请附带原帖地址
http://alphasun.18en.com/ http://shakingtoolkit.9126.com/
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析