这个程序上学期还是好用的,然后最近我重新用的时候出现了一个很莫名其妙的问题。 就是说 两端进行密钥协商的时候 不能通信了。
send recv返回-1 错误代码10038(好像是说在无效的套接字上操作) 但是我的连接时成功的 套接字都是对的
帮我看看吧 。
代码出问题的部分在这里
int m;
m=0;
while(m==0)
{
dwDataLen1=recv(talk,buf1,80,0);
//e=WSAGetLastError();
m=send(talk, BUF, dwDataLen2, 0);//发送公钥2
}
另一端
while(n==0)
{
n=send(s, BUF, 80, 0);//发送公钥1
//e=WSAGetLastError();
dwDataLen2=recv(s,buf1,80,0);
//SendDlgItemMessage(hwnd,IDC_TISHILIST,LB_ADDSTRING,0,(LPARAM)(buf));
pbKeyBlob2=(unsigned char*)buf1;
}
假如您知道为什么告诉我啊,需要全部附件可以有助您调试
send recv返回-1 错误代码10038(好像是说在无效的套接字上操作) 但是我的连接时成功的 套接字都是对的
帮我看看吧 。
代码出问题的部分在这里
int m;
m=0;
while(m==0)
{
dwDataLen1=recv(talk,buf1,80,0);
//e=WSAGetLastError();
m=send(talk, BUF, dwDataLen2, 0);//发送公钥2
}
另一端
while(n==0)
{
n=send(s, BUF, 80, 0);//发送公钥1
//e=WSAGetLastError();
dwDataLen2=recv(s,buf1,80,0);
//SendDlgItemMessage(hwnd,IDC_TISHILIST,LB_ADDSTRING,0,(LPARAM)(buf));
pbKeyBlob2=(unsigned char*)buf1;
}
假如您知道为什么告诉我啊,需要全部附件可以有助您调试
然后我进行通信就是上述的问题。
在TCP服务器端在接收、发送数据使用的是accept()返回的套接字,不是listen的那个套接字!!
你应该是在这里错了,你使用了作为listen的那个套接字了