当然不能关闭psocket啦
连接成功后会得到一个新的socket
通过该socket才能收到数据
在关闭连接是也该关闭该socket
只有不再监听端口时才关闭psocket
连接成功后会得到一个新的socket
通过该socket才能收到数据
在关闭连接是也该关闭该socket
只有不再监听端口时才关闭psocket
解决方案 »
- 获取系统的开机启动方式
- 关于雷达图像变成灰度图的问题
- 使用Winpcap抓包,有以下疑惑,希望得到高手指点!
- 保护字符串中数据不被修改!!
- "hello world"程序都会出错,刚接触MFC,请帮忙...........
- "串口调试助手"是怎样把接收到的字符串转换成十六进制的啊?
- 如果想用vc做一个图像实时传输的系统,应该怎样解决呢?请教各位
- 关于DLL的一个简单问题(inside vc(4e)) 的一个example
- 用GetContextMenuManager(),怎么让自定义菜单有的菜单项无效?
- 关于MFC listbox分栏问题。
- 4K内存处理16K文本,怎么办?
- 关于windows98
你看看msdn中的csocket, programming model或Windows Sockets: Sequence of Operations就会明白的。good luck.
2。关闭后应该再次CREATE
我这里有个简单例子UINT Client(LPVOID S);
class server : public CSocket
{
public:
server();
virtual ~server();
virtual void OnAccept(int nErrorCode);
};void server::OnAccept(int nErrorCode)
{
CSocket c;
SOCKET *s;
this->Accept(c);
s=new SOCKET;
*s=c.Detach();
::AfxBeginThread(Client,(LPVOID)s);
CSocket::OnAccept(nErrorCode);
}
UINT Client(LPVOID S)
{
CSocket s;
s.Attach(*(SOCKET*)S);
delete S;
char buf[200];
int r=s.Receive(buf,200);
int w=s.Send(buf,200);
CString str;
str.Format("server %d ,%d",r,w);
::AfxMessageBox(str);
return 0;
}
服务器用法
server Server;
Server.Create(3000));
Server.Listen();
客户端
CSocket client;
client.Create();
client.Connect("127.0.0.1",3000);
char buf[200];
int r,w;
w=client.Send(buf,200);
r=client.Receive(buf,200);
CString str;
str.Format("client write %d,read %d",w,r);
::AfxMessageBox(str);
client.Close();
请问,如果我想让客户端再次连接服务器应该怎么办呢
调用connect后返回socket,数据收发操作通过返回socket进行
服务器端accept得到新的socket
原socket仍然处于监听状态,可以接受另一客户连接