CSocket网络通信中server与server之间能通信么?

mirroatl187 2016-04-10 08:07:41
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...全文
145 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cuiyunliang123 2016-04-11
  • 打赏
  • 举报
回复
进程间通信: 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 # 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 # 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。 # 消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。 # 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。 # 共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。 # 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。 你很大可能是在问两个sockt服务之间的通讯,服务本身也可以作为客户端,用线程区分或者子进程区分即可,比如几个线程维护服务,几个线程维护客户端这样就可以通讯了。 怎么实现,其实线程函数里面的内容和client里面的差不多。
孤客天涯 2016-04-10
  • 打赏
  • 举报
回复
CS模式必须建立连接才能通讯,光两个Server,连接都无法建立,能通讯吗?
里面包含聊天室的客户端和服务器端的源文件和一份完整的设计报告。 一、 系统概要 本系统能实现基于VC++的网络聊天室系统。有单独的客户端、服务器端。 服务器应用程序能够接受来自客户端的广播,然后向客户端发送本机的IP与服务端口,让客户端接入到服务器进行聊天,检测用户名是否合法(重复),服务器责接收来自客户端的聊天信息,并根据用户的需求发送给指定的人或所有人,能够给出上线下线提示。客户端能够发出连接请求,能编辑发送信息,可以指定发给单人或所有人,能显示聊天人数,上线下线用户等。 二、 通信规范的制定 服务请求规范: 服务器端: (1) 创建一个UDP的套接字,接受来自客户端的广播请求,当请求报文内容为“REQUEST FOR IP ADDRESS AND SERVERPORT”时,接受请求,给客户端发送本服务器TCP聊天室的端口号。 (2) 创建一个主要的TCP协议的套接字负责客户端TCP连接 ,处理它的连接请求事件。 (3)在主要的TCP连接协议的套接字里面再创建TCP套接字保存到动态数组里,在主要的套接字接受请求后 ,就用这些套接字和客户端发送和接受数据。 客户端: (1) 当用户按“连接”按钮时,创建UDP协议套接字,给本地计算机发广播,广播内容为“REQUEST FOR IP ADDRESS AND SERVERPORT”。 (2)当收到服务器端的回应,收到服务器发来的端口号后,关闭UDP连接。根据服务器的IP地址和端口号重新创建TCP连接。 故我思考:客户端一定要知道服务器的一个端口,我假设它知道服务器UDP服务的端口,通过发广播给服务器的UDP服务套接字,然后等待该套接字发回服务器TCP聊天室服务的端口号,IP地址用ReceiveForom也苛刻得到。 通信规范 通信规范的制定主要跟老师给出的差不多,并做了一小点增加: (增加验证用户名是否与聊天室已有用户重复,在服务器给客户端的消息,增加标志0) ① TCP/IP数据通信 --- “聊天”消息传输格式 客户机 - 服务器 (1)传输“用户名” STX+1+用户名+ETX (2) 悄悄话 STX+2+用户名+”,”+内容+ETX (3) 对所有人说 STX+3+内容+ETX 服务器- 客户机 (0)请求用户名与在线用户名重复 //改进 STX+0+用户名+EXT (1)首次传输在线用户名 STX+1+用户名+ETX (2)传输新到用户名 STX+2+用户名+ETX (3)传输离线用户名 STX+3+用户名+ETX (4)传输聊天数据 STX+4+内容+ETX (注:STX为CHR(2),ETX 为CHR(3)) 三、 主要模块的设计分析 四、 系统运行效果 (要求有屏幕截图) 五、 心得与体会
第一章 Internet 网络编程基础知识 1 1.1 Internet的网络结构 1 1.1.1 网络拓扑结构 1 1.1.2 以太网技术 3 1.1.3 其他高速网络技术 4 1.1.4 Internet整体结构 6 1.2 网络分层模型和TCP/IP协议 7 1.2.1 OSI 模型 7 1.2.2 TCP/IP协议 12 1.3 网络进程通信原理 22 第二章 Socket套接字 24 2.1 Berkeley Sockets 24 2.1.1 理解berkeley sockets接口 24 2.1.2 使用Socket模型 26 2.2 Windows sockets 33 2.2.1 理解windows sockets 33 2.2.2 winsock 编程模型 35 2.2.3 berkeley sockets和windows sokets比较 38 2.3 Winsock编程实例 41 2.3.1 主机地址查询程序 41 2.3.2 一个简单的FTP程序 43 2.3.3 小结 48 第三章 Visual C++6.0编程基础 49 3.1 Visual C++6.0编程工具简介 49 3.2 面向对象语言C++ 51 3.3 ViualC++6.0的使用 52 3.4 MFC编程概述 57 第四章 Casync Socket类和CSocket类 60 4.1 Casync Socket类 60 4.2 Csocket类 61 第五章 Winsock库函数参考 66 5.1 Windows Socket 1.1 库函数参考 66 5.2 数据库函数 72 5.3 Windows扩展函数 74 5.4 Windows Socket 2.0 扩展库函数参考 79 第六章 Sockets, MAPI和Internet 89 6.1 消息API(MAPI) 92 6.1.1 什么是MAPI? 92 6.1.2 扩展MAPI 96 6.2 OLE 消息 97 6.3 使用Internet Server(ISAPI)类 98 第七章 使用WinInet类库的网络开发 102 7.1 设计Interent查询 102 7.2 查询HTTP节点 111 7.3 查询FTP节点 115 7.4 查询Gopher节点 117 7.5 使用Gopher去发送Finger查询 119 7.6 使用Gopher去发送Whois查询 121 7.7 将来的工作 123 第八章 例子程序代码分析 125 8.1 MAPI创建邮件应用程序 125 8.1.1 消息应用接口(MAPI) 125 8.1.2 两种比较高级的选择:简单MAPI和CMC 125 8.2 连接FTP 133 8.2.1 Ftp连接类的信息 134 8.2.2 创建应用程序 138 8.2.3 检索FTP文件服务器 140 8.2.4 向服务器发送文件 142 8.2.5 获得FTP服务器根目录 147 第九章 HTML、CGI与ISAPI 153 9.1 HTML简介 153 9.2 VBScript 157 9.3 CGI 163 9.3.1 为什么使用CGI? 163 9.3.2 CGI是什么? 163 9.3.3 选择你熟悉的编程语言 163 9.3.4 安全 164 9.4 ISAPI 165 第十章 ActiveX容器应用程序 173 10.1 向对话框添加ActiveX控件 173 10.2 示例程序MyPlayer 175 10.3 源程序清单 179 第十一章 编写ActiveX控件 195 11.1 ActiveX Control Wizard 195 11.2 添加属性 200 11.3 添加方法 205 11.4 添加事件 207 11.5 ActiveX Control Test Container 210 11.6 在Internet上使用ActiveX控件 212 11.7 源代码清单 215 第十二章 ActiveX自动化客户 228 12.1 自动化基础 228 12.2 创建初始应用程序 231 12.3 类型库和COleDispatchDriver 233 12.4 创建和使用自动化对象 236 12.5 部分源程序清单 240 第十三章 ActiveX自动化服务器 263 13.1 自动化服务器基础 263 13.2 创建自动化服务器框架工程 264 13.3 添加属性和方法 268 13.4 完成示例程序AutoDirInfo 270 13.5 支持双接口 275 13.6 在Internet上使用自动化对象 282 13.7 源程序清单 284

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧