我也来顶一下,顺便问个问题啊?:(
为什么?我的socket连接上后就是收不到数据,错误号10038---->socket无效,大家看看我的代码
好嘛,郁闷死了:(
LRESULT CRundllDlg::OnStMessage(WPARAM wParam,LPARAM lParam){
switch(lParam)
{
case FD_ACCEPT:
int tmp;
tmp=sizeof(client);
if(this->ss=accept(this->Server_sock,(SOCKADDR*)&client,&tmp)==INVALID_SOCKET )
{
AfxMessageBox("accept fialed");
}
AfxMessageBox(_itoa(ntohs(client.sin_port),a,10));//这里弹出的内容是正确的
AfxMessageBox(inet_ntoa(client.sin_addr));
break;
case FD_READ:
//fd_set fdr;
//FD_ZERO(&fdr);
//FD_SET(ss,&fdr);
while(1)
{
char a[10];
Len=recv(this->ss,abuffer,sizeof(abuffer),0);
if(Len==SOCKET_ERROR){
int temp=GetLastError();
AfxMessageBox(_itoa(temp,a,10));
break;
}
if(Len>0)
{
AfxMessageBox("Write");
}
}
break;}
return false;
}
客户端发送是成功的,难道在accept时还要做什么操作?小弟第1次用socket又没书(我看书上也就这么写的:))请高人指点指点啊?谢谢
最好在给点代码啊,:)
为什么?我的socket连接上后就是收不到数据,错误号10038---->socket无效,大家看看我的代码
好嘛,郁闷死了:(
LRESULT CRundllDlg::OnStMessage(WPARAM wParam,LPARAM lParam){
switch(lParam)
{
case FD_ACCEPT:
int tmp;
tmp=sizeof(client);
if(this->ss=accept(this->Server_sock,(SOCKADDR*)&client,&tmp)==INVALID_SOCKET )
{
AfxMessageBox("accept fialed");
}
AfxMessageBox(_itoa(ntohs(client.sin_port),a,10));//这里弹出的内容是正确的
AfxMessageBox(inet_ntoa(client.sin_addr));
break;
case FD_READ:
//fd_set fdr;
//FD_ZERO(&fdr);
//FD_SET(ss,&fdr);
while(1)
{
char a[10];
Len=recv(this->ss,abuffer,sizeof(abuffer),0);
if(Len==SOCKET_ERROR){
int temp=GetLastError();
AfxMessageBox(_itoa(temp,a,10));
break;
}
if(Len>0)
{
AfxMessageBox("Write");
}
}
break;}
return false;
}
客户端发送是成功的,难道在accept时还要做什么操作?小弟第1次用socket又没书(我看书上也就这么写的:))请高人指点指点啊?谢谢
最好在给点代码啊,:)
Len = recv(this->Server_sock, abuffer, sizeof(abuffer), 0);
AfxMessageBox(inet_ntoa(client.sin_addr));可以正确的显示地址以及端口号了?实在看不出错哪里了我再想想:)
// 这里应该是两个等号吧 ==呵呵所以系统会说 this->ss是个无效的套接字,其他地方都没有问题了^_^
// 这里应该是两个等号吧 ==呵呵所以系统会说 this->ss是个无效的套接字,其他地方都没有问题了^_^
而原来的那个socket(也就是this->Server_sock)继续监听啊?FD_READ是窗口消息啊?
发给窗口的?为说清楚点,我把我知道说一下(全是书上说的,代码也是考的):先加载dll,然后创建监听sock(也就是server_sock),做好select机制,然后绑定,然后监听
当有连接来时调用accept函数返回1个新socket(也就是ss,client 结构保存连接端信息)弹出的内容是正确,然后就开始用ss去收发数据,问题来了,客户端能发送数据,但是服务器端崂是出错!