网络应用(7):tcp使用 | socket
2019-05-20 17:10
1666 查看
协议就是约定,大家都使用同一套协议,通信才不会乱。能让大家都遵守同一个约定是了不得的,而tcp/ip协议,就是一套广泛使用的协议。
tcp/ip协议是一个协议栈,也就是有分层结构,各层各司其职,其中有一层叫传输层,引出一个协议叫tcp协议。tcp协议基于ip协议(ip协议是ip层,是传输层的下层,也叫网络层),增加了一个端口。
ip定位到设备,tcp(端口)定位到设备上的进程(应用)。所以,使用tcp协议就能在两个进程间进行通信。
这里没有高深的东西,还是基本面--如何使用。简单看看怎么使用tcp协议来完成对话,用python比较好演示,其中涉及到的行为在不同语言中都有相应的实现。
基本上,tcp协议的实现,离不开socket。
socket,套接字,可以变身为网络结点(比如两个进程)的通道,有了它,就能通信。
服务器程序,简单实现:
客户端程序,简单实现:
执行起来,效果如下:
tcp通信,是流式的通信,先建立连接后使用,而有连接让数据的完整性得以保证。
以上程序演示了tcp协议的使用,包括函数socket、bind、listen、accept、connect、send,等等。如果再深入一点,还可以了解socket属性的设置(setsocketopt)、非阻塞的使用、select的使用等,这里不细说,谁用谁研究。
相关文章推荐
- 移动网络应用开发中,使用 HTTP 协议比起使用 socket 实现基于 TCP 的自定义协议有哪些优势?
- 移动网络应用开发中,使用 HTTP 协议比起使用 socket 实现基于 TCP 的自定义协议有哪些优势?
- 移动网络应用开发中,使用 HTTP 协议比起使用 socket 实现基于 TCP 的自定义协议有哪些优势?
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)----使用方法
- 网络层、传输层、应用层、端口通信协议编程接口 - http,socket,tcp/ip 网络传输与通讯知识总结
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)
- Java TCP使用Socket进行网络通信(3)
- Linux网络编程 - TCP高级应用:socket文件描述符属性控制
- python应用系列教程——python使用SocketServer实现网络服务器,socket实现客户端
- [转载]在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)----使用方法
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分
- Java TCP使用Socket进行网络通信(4)之往返发送
- python网络编程之TCP通信实例和socketserver框架使用例子
- JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用
- python网络编程之udp 与 tcpsocket的应用
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分(来源:http://blog.csdn.net/yangjundeng/archive/2005/03/17/321920.aspx)
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分(转)