你的意思是指这些连接都用同一个端口,但是由cpu轮流分配与这些客户端传输数据的时间,是吗?我看到一个例程,它指定了侦听端口,但是对于与客户机相连的socket,未做任何指定,请问,这些socket,及它们的端口,是自动分配的,不会冲突,还是,它们是共用
一个socket,由cpu轮流分配时间,又,若不指定,自动分配的socket会和侦听socket重复,引起冲突吗?
一个socket,由cpu轮流分配时间,又,若不指定,自动分配的socket会和侦听socket重复,引起冲突吗?
解决方案 »
- 怎么在窗口中插入一些IE广告,点击就能连到网页上去?
- 关于pc-lint的问题.
- 在VC2005中菜单的消息响应函数怎么去掉?
- 为什么不起作用!菜鸟请教==>>
- 在基于对话框应用程序中,打开新对话框时如何让它在最大化的同时使里面的控件能够按照比例自动缩放!
- ========怎么得到系统的某个驱动程序资料??
- 用VC++调用Matlab数学和图形库的问题----在线等待
- 如何用VC语句实现模拟按一下“回车”键的效果?谢谢!
- tree控件上的弹出菜单
- CPropertySheet为什么不响应WM_CLOSE消息?
- 哪有WINDOWS API说明下载?FOR VC的?
- 我想建一个关于书籍下载的个人主页,把大家所需的的电子书籍集中到一个主页上,方便大家下载!!!请大家把知道的好的电子书籍介绍一下!!!
常规用法:用一个socket进行侦听,实际服务由另一socket完成。
只有侦听socket要指定端口,实际服务socket可由系统自动分配(不会与已有的端口重复)。
CSocket有自己的消息循环,用于监视端口!
eggplant(拉拉) 所说:端口应该没有被重新分配。是否就是指所有与客户机的连接都用
同一端口?
{
CCoderDlg* dlg=(CCoderDlg*)::AfxGetMainWnd();
CString strMeg;
// TODO: Add your specialized code here and/or call the base class
CClientSocket* pClientSocket=new CClientSocket();
SOCKADDR SockAddr;
int nAddrLen=sizeof(SOCKADDR);
if(this->Accept(*pClientSocket,&SockAddr,&nAddrLen))
{
//check ip here
SOCKADDR_IN *pAddIn=(SOCKADDR_IN*)&SockAddr;
CString strIP;
strIP.Format("%d.%d.%d.%d",pAddIn->sin_addr.S_un.S_un_b.s_b1,pAddIn->sin_addr.S_un.S_un_b.s_b2,
pAddIn->sin_addr.S_un.S_un_b.s_b3,pAddIn->sin_addr.S_un.S_un_b.s_b4);
//mytest
//CString strPort;
//strPort.Format("port:%d",pAddIn->sin_port); if(this->IsValidataIP(strIP))
{
strMeg="有效的IP地址:"+strIP+"连接上来了";
dlg->AddMessage(strMeg);
::AfxBeginThread(ConnectProc,(LPVOID)pClientSocket); }
else
{
delete pClientSocket;
strMeg="一个非法的IP地址:"+strIP+"企图连接";
dlg->AddMessage(strMeg);
} }
else
delete pClientSocket;
CSocket::OnAccept(nErrorCode);
}
不是两端啊?望赐教!!!