设为首页 加入收藏

TOP

Linux下的TCP通信
2014-11-24 12:31:35 来源: 作者: 【 】 浏览:1
Tags:Linux TCP 通信

本文绝大部分是参考《Linux程序设计(第4版)》的第15章套接字



服务器端的步骤如下:


1. socket: 建立一个socket


2. bind: 将这个socket绑定在某个文件上(AF_UNIX)或某个端口上(AF_INET),我们会分别介绍这两种。


3. listen: 开始监听


4. accept: 如果监听到客户端连接,则调用accept接收这个连接并同时新建一个socket来和客户进行通信


5. read/write:读取或发送数据到客户端


6. close: 通信完成后关闭socket




客户端的步骤如下:


1. socket: 建立一个socket


2. connect: 主动连接服务器端的某个文件(AF_UNIX)或某个端口(AF_INET)



3. read/write:如果服务器同意连接(accept),则读取或发送数据到服务器端


4. close: 通信完成后关闭socket





上面是整个流程,我们先给出一个例子,具体分析会在之后给出。例子实现的功能是客户端发送一个字符到服务器,服务器将这个字符+1后送回客户端,客户端再把它打印出来


Makefile:




tcp_server.c:




tcp_client.c:





如果我们首先运行tcp_client,会提示没有这个文件:




因为我们是以AF_UNIX方式进行通信的,这种方式是通过文件来将服务器和客户端连接起来的,因此我们应该先运行tcp_server,创建这个文件,默认情况下,这个文件会创建在当前目录下,并且第一个s表示它是一个socket文件





程序运行的结果如下图:



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android Socket通信(下) 下一篇Linux下的UDP通信

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)