网络通讯用CSocket编程实现。当用TCP时,需要一台机器充当服务器,对某个端口进行监听,并等待连接请求。我看到这样的程序代码, 有点不明白。m_srvrSocket.Create //m_srvrSocket是 CMyServerSocket 对象.继承自 CSocket
(UserPort,SOCK_STREAM,FD_ACCEPT);//创建流套接字, 并在UserPort上进行监听。m_srvrSocket。Listen(1)//等待连接请求。并且作者还对一个虚函数CMyServerSocket::OnAccept进行重载。当有Client端程序与服务端连接时, 服务端是如何工作的, 它调用的函数次序如何。
(UserPort,SOCK_STREAM,FD_ACCEPT);//创建流套接字, 并在UserPort上进行监听。m_srvrSocket。Listen(1)//等待连接请求。并且作者还对一个虚函数CMyServerSocket::OnAccept进行重载。当有Client端程序与服务端连接时, 服务端是如何工作的, 它调用的函数次序如何。
解决方案 »
- 关于ActiveX控件制作cab用于web发布,各位达人帮忙谢谢!
- vc中怎么没有access ()函数?
- GDIPLUS 画封闭曲线一问
- 如何在对话框里实现“上一步”“下一步”?
- CONNECT_E_CANNOTCONNECT问题
- 这样发送一个TAB键被按下的消息啊?(在线等,急)
- 再附加弹出菜单是为何出问题?
- 关于Socket和CSocket的小问题,大送分!!!!在线等待!
- 能把对话框嵌入CView中吗?
- 使用Direct3D 9的程序在Vista下出现了问题
- VC程序在debug版好用,在release版下编译能通过,但程序某一功能却不能用,请指教
- 怎么让对话框中的控件随着对话框大小变化而变化!
当一个CLient端与服务器端连接上了, m_srvrSocket还会不会继续自动监听, 是否还需要重新调用Listen().在这里先谢谢高手们。
no
对于服务器,先建立一个套接字,,然后调用bind函数使这个套接字绑定到具体的本地IP接口和端口上,然后调用listen对这个端口进物监听,等待客户的连接,在收到客户机连接之后,调用accept函数接受连接,这个函数会建立一个新的套接字,它对应于己经接受的那个客户机连接,对于该客户机后续的操作,都应使用这个套接字,至于原来的那个监听套接字,它仍然用于接受其他的客户连接而且还处于监听的模式。
对于客户机,
简单一些(与服务器相比),客户机建立一个套接字,并对投入应用的服务器名进行解析,然后与服务器建立连接(调用connect函数),连接一旦成功,就可发送大量的消息了(调用send),每次发送数据之后,客户机都会等待服务器发回的回应(调用recv)吧,
我是昨天看的书,今天还不至于忘记吧!
具体的内容,请楼主查资料吧!我也打算面向网络编程呢!