提供一个框架
服务器端: 
创建一个Socket 
sFd=socket(AF_INET,SOCK_STREAM,0) 
把Socket和本机的IP,TCP口绑定 
bind(sFd,(structsockaddr*)&serverAddr,sockAddrSize) 
为客户连接创建等待队列 
listen(sFd,SERVER_MAX_CONNECTIONS) 
这里循环等待,如有客户连接请求,则接受客户机连接要求 
accept(sFd,(structsockaddr*)&clientAddr,&sockAddrSize)) 
接受客户机发来的信息 
fioRead(sFd,(char*)&clientRequest,sizeof(clientRequest))) 
给客户机发信息 
write(sFd,replyMsg,sizeof(replyMsg)) 
关闭Socket,通信终止 
close(sFd)

客户端: 
创建一个Socket 
sFd=socket(AF_INET,SOCK_STREAM,0) 
注意:客户端不需要绑定,因为TCP口是动态的. 
向服务器端发送连接请求,并在这里等待回应,如收到回应则向下执行 
connect(sFd,(structsockaddr*)&serverAddr,sockAddrSize) 
服务器接受连接请求后,读服务器发过来的信息 
read(sFd,buffer,20) 
向服务器发信息 
write(sFd,buffer,20); 
关闭Sockets 
close(sFd)

TCP服务端和客户端的框架的更多相关文章

  1. 【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端

    [转]TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端).UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP ...

  2. swoole创建TCP服务端和客户端

    服务端: server.php <?php //创建Server对象,监听 127.0.0.1:9501端口    $serv = new swoole_server("127.0.0 ...

  3. 基于Select模型的Windows TCP服务端和客户端程序示例

    最近跟着刘远东老师的<C++百万并发网络通信引擎架构与实现(服务端.客户端.跨平台)>,Bilibili视频地址为C++百万并发网络通信引擎架构与实现(服务端.客户端.跨平台),重新复习下 ...

  4. TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端

    目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方 ...

  5. vertx 从Tcp服务端和客户端开始翻译

    写TCP 服务器和客户端 vert.x能够使你很容易写出非阻塞的TCP客户端和服务器 创建一个TCP服务 最简单的创建TCP服务的方法是使用默认的配置:如下 NetServer server = ve ...

  6. Java TCP服务端向客户端发送图片

    /** * 1.创建TCP服务端,TCP客户端 * 2.服务端等待客户端连接,客户端连接后,服务端向客户端写入图片 * 3.客户端收到后进行文件保存 * @author Administrator * ...

  7. python创建tcp服务端和客户端

    1.tcp服务端server from socket import * from time import ctime HOST = '' PORT = 9999 BUFSIZ = 1024 ADDR ...

  8. C++封装的基于WinSock2的TCP服务端、客户端

    无聊研究Winsock套接字编程,用原生的C语言接口写出来的代码看着难受,于是自己简单用C++封装一下,把思路过程理清,方便自己后续翻看和新手学习. 只写好了TCP通信服务端,有空把客户端流程也封装一 ...

  9. Tcp服务端判断客户端是否断开连接

    今天搞tcp链接弄了一天,前面创建socket,绑定,监听等主要分清自己的参数,udp还是tcp的.好不容易调通了,然后就是一个需求,当客户端主动断开连接时,服务端也要断开连接,这样一下次客户端请求链 ...

随机推荐

  1. 入侵HP打印机的文件系统

    计算机入侵可听多了,然而打印机入侵相信大家可很少听过吧.如今,很大一部分的打印机已经网络化了,能入侵和控制打印机不仅能用来进行DDOS,而内部的文件系统更是绝好的秘密文件收藏空间.现在就来谈谈如何入侵 ...

  2. hdu 4672 Present Day, Present Time 博弈论

    看了解题报告才知道怎么做!! 题意:有 N 堆石子和 M 个石子回收站,每回合操作的人可以选择一堆石子,从中拿出一些 放到石子回收站里(可以放进多个回收站,每个回收站可以使用无数次),但每个石子回收站 ...

  3. WCF 下的windows服务的安装卸载

    安装:启动vs2010(如果是win2008要以管理员来启动)命令:installutil demo.exe 卸载:先在服务里停止这个服务,然后启动vs2010(如果是win2008要以管理员来启动) ...

  4. php.ini – 配置文件详解

    详见: https://my.oschina.net/miaowang/blog/299546 这个文件必须命名为''php.ini''并放置在httpd.conf中的PHPIniDir指令指定的目录 ...

  5. 安装和使用screen

    安装和使用screen 安装screenyum可以在线安装screenyum install screen 使用screen1.创建screen会话;进入Xshell,运行以下:screen 2.离开 ...

  6. C++静态成员变量和静态成员函数小结

    静态类成员包括静态数据成员和静态函数成员两部分. 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员.和其他数据成员一样,静态数据成员也遵守pub ...

  7. linux 进程间消息队列通讯

    转自:http://blog.csdn.net/lifan5/article/details/7588529 http://www.cnblogs.com/kunhu/p/3608589.html 前 ...

  8. 函数fsp_seg_inode_page_find_free

    /**********************************************************************//** Looks for an unused segm ...

  9. 各种html5 的 polyfill

    https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills 配合 Modernizr

  10. poj3666

    一道不错的dp题 就是最小修改代价,使序列变为一个非下降序或非上升(由于数据较弱直接求非下降即可,当然非上升非下降本质是一样的) 观察可得到,修改后得到的数列中的元素最后一定都在原序列中: 由此我们可 ...