Welcome![Sign In][Sign Up]
Location:
Search - listen sock

Search list

[Internet-NetworkYSocket

Description: 非常方便的网络Socket类,开发网络程序变得很简单。 支持自定义的string类。 用法:typedef YSocket<CString> CMySocket //CString也可以用自己的string类,从而可以用来atl等任何地方 CMySocket tpSock //声明 tpSock.Create()//建立sock tpSock.Bind()//绑定 tpSock.Listen()//开始侦听
Platform: | Size: 11105 | Author: 叶振华 | Hits:

[WinSock-NDISTCP实现客户服务器聊天程序

Description:

 

操作系统课程设计任务书


一、设计题目:多机进程通信

应用Socket进程通信技术编写聊天室程序,实现基于服务器的并发多机信息转发。如果各客户端在线则可以实时聊天、发送接收文件,如果某客户端离线,则发送给他的消息可由服务器端进行内容缓存,待重新连线后可以自动接收通过服务器转发的信息或文件。缓存与转发的控制算法可参考操作系统课程中生产者消费者进程同步方法、缓冲池技术等相关理论。
二、设计思路和功能的详细描述
采用TCP协议,所以属于客户机/服务器模式,因此需要聊天服务器端和聊天客户端两个程序,实现的功能是:任意一台装有客户端程序的计算机都可以通过服务器端的IP地址与服务器相连,然后进入聊天室与连接到服务器的其他客户进行聊天。当客户聊天结束时,可以点断开与服务器断开连接,以释放进程让其他等待的客户进入聊天室,本聊天室最大同时支持50个客户端的连接,如果服务器配置较高可以修改程序来增加同时连接数。
三、采用的方法、技术、运行环境及其配置
本聊天程序采用TCP协议,用VC++编写,属于客户机/服务器模式。采用了多线程的机制。其中使用windows Sockets实现多台计算机(多个进程)间的通信,SOCKET实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有SOCKET接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个SOCKET接口来实现。客户机/服务器模式中客户应用程序向服务器程序请求服务。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户对这个服务的地址提出了连接请求。在这个时刻,服务程序被“惊醒”并且为客户提供服务即对客户的请求作出适当的反应。本聊天程序就是基于这中思想实现的,程序分为两大部分:TCP聊天服务器端和TCP聊天客户端。两者都拥有各自的SOCKET接口,其中服务器端SOCKET接口需要绑定到固定地址上(实现语句:ock=Socket(AF_INET,SOCK_STREAM,0);),等待客户端的连接(实现语句:listen(sock,5);)。等待客户端的连接的过程就是通过多进程机制来实现的。
聊天程序是在VISUAL C++6.0上编译实现的,在WINDOWS2000,XP上测试运行成功。
对客户计算机配置无特殊要求,由于所设置的最大连接进程为50,所以对服务器要求也不高。
四、关键源程序及其详细的注释
<一>、服务器端
1
、Socket初始化
//
初始化对话框
BOOL CCSocketDlg::OnInitDialog()
{

count=0;

m_list.InsertColumn(0,"消息");

m_list.SetColumnWidth(0,435);

m_edit.SetLimitText(99);

.

.

.

.

 


Platform: | Size: 55808 | Author: lenjear | Hits:

[Windows Developsf_200562516252

Description: 一个线程驰的类, 下面的是基本的使用方法 struct TSession { SOCKET socket int id } class myIocp:public CIOCP { public: void OnRead(void * p, char * buf, int len) void OnAccept(SOCKET socket) void OnClose(void * p) } void myIocp::OnAccept(SOCKET socket) { TSession *s = new TSession s->socket = socket //这里可以对连接的session进行自己的操作,例如给id找一个唯一的值 SetIoCompletionPort(socket, s) // 使连接socket与一个自定义结构体关联 } void myIocp::OnRead(void * p, char * buf, int len) { TSession *s = (TSession *)p send(s->socket, buf, len, 0) // 这里只是简单的把收到的消息返回给客户端 ... } void myIocp::OnClose(void * p) { delete p } myIoncp iocp main() { ... iocp.listen(4311) // 开始监听网络端口,等待客户端连接 ... }-A class for thread pool,basic usage below: struct TSession { SOCKET socket int id } class myIocp:public CIOCP { public: void OnRead(void* p, char* buf, int len) void OnAccept(SOCKET socket) void OnClose(void* p) } void myIocp::OnAccept(SOCKET socket) { TSession*s = new TSession s->socket = socket //here you can do something about connection session,such as find a unique id. SetIoCompletionPort(socket, s) // make connection socket associate with a custom structure } void myIocp::OnRead(void* p, char* buf, int len) { TSession*s = (TSession*)p send(s->socket, buf, len, 0) // return received message to client void myIocp::OnClose(void* p) { delete p } myIoncp iocp main() { ... iocp.listen(4311) //start listenning net port,wait for client connect.
Platform: | Size: 2048 | Author: boxu | Hits:

[Internet-NetworkMTServerSrc

Description: 一个多线程实现的TCP服务端 listen, 在accept一个请求后,再启动一个线程来处理对应的socket-a multithreaded achieving TCP server listen, accept a request and then start a thread to handle the corresponding socket
Platform: | Size: 6144 | Author: 无形 | Hits:

[Windows Developlisten23

Description: socket的应用,一个简单的listen侦听的VC++程序,值得一看-socket applications, a simple interception listen to the VC++ program, an eye-catcher
Platform: | Size: 2961408 | Author: 辰辰 | Hits:

[Internet-NetworkYSocket

Description: 非常方便的网络Socket类,开发网络程序变得很简单。 支持自定义的string类。 用法:typedef YSocket<CString> CMySocket //CString也可以用自己的string类,从而可以用来atl等任何地方 CMySocket tpSock //声明 tpSock.Create()//建立sock tpSock.Bind()//绑定 tpSock.Listen()//开始侦听-Very convenient network of Socket class, the development of the network becomes very simple procedure. Support custom string type. Usage: typedef YSocket
Platform: | Size: 11264 | Author: 叶振华 | Hits:

[Internet-Networkhome

Description: socket 简单使用的demo ,通过这个demo,你可以大体了解这个sock套接字的开发流程-socket demo socket bind listen accept write read close
Platform: | Size: 2048 | Author: zheng | Hits:

CodeBus www.codebus.net