socket建立tcp、udp链接

建立不中断tcp链接:

tcp服务端:

 1 from socket import *
 2
 3 ip_port = (‘192.168.0.101‘, 8000)
 4 buffer_size = 1024
 5 back_log = 5
 6
 7 s_server = socket(AF_INET, SOCK_STREAM)  # 启用tcp链接
 8 s_server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)  # 允许重复使用IP地址
 9 s_server.bind(ip_port)  # 服务端绑定ip端口
10 print(‘服务端已启动,地址为:{},端口为:{}‘.format(*ip_port))
11 s_server.listen(back_log)  # 监听客户端数量
12 while True:
13     conn, addr = s_server.accept()  # 等待客户端连接
14     print(‘客户端已连接:‘, addr)
15     while True:
16         try:  # 如果客户端主动断开连接,则捕获异常,断开连接
17             data = conn.recv(buffer_size)
18             if not data: continue  # 若客户端发来消息为空,则重新接受——否则会导致tcp处于挂起在接收状态
19             print(‘客户端发来消息:‘, data.decode(‘utf8‘))
20             conn.send(data.upper())  # 收到的消息是二进制格式,所以回复的时候不需要处理编码
21         except Exception as e:
22             print(e)
23             break
24     conn.close()

tcp客户端:

 1 from socket import *
 2
 3 ip_port = (‘192.168.0.101‘, 8000)
 4 buffer_size = 1024
 5
 6 s = socket(AF_INET, SOCK_STREAM)
 7 s.connect(ip_port)
 8 while True:
 9     data = input(‘::>‘).strip()
10     s.send(data.encode(‘utf8‘))
11     msg = s.recv(buffer_size)
12     print(‘收到来自服务端的消息:‘, msg)

注意:tcp是需要建立双向连接的,所以需要监听客户端的链接,同时根据所建立的链接来收发消息。并且tcp的IP和端口绑定后(形成一个通道),建立连接之后不允许其他链接接入。

原文地址:https://www.cnblogs.com/wjlv/p/11622826.html

时间: 2024-08-10 05:30:29

socket建立tcp、udp链接的相关文章

网络编程—网络基础概览、socket,TCP/UDP协议

网络基础概览 socket概览 socket模块-TCP/UDP的实现 TCP/UDP总结 网络基础概览 osi七层协议各层主要的协议 # 物理层传输电信号1010101010 # 数据链路层,以太网协议,arp协议.对这些信号进行分组,同时规范了分组形式--以太网协议,头部是mac地址中间是信息, # 网络层:ip协议,arp协议帮忙找到mac地址,ip,子网掩码,网关(下面有一些简单概括) # 传输层:tcp协议,udp协议 # (socket)就是一组接口,将复杂的tcp协议和udp协议隐

[网络] SOCKET, TCP/UDP, HTTP, FTP

(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传输层:TCP协议与UDP协议 应用层:FTP.HTTP.TELNET.SMTP.DNS等协议 HTTP是应用层协议,其传输都是被包装成TCP协议传输.能够用SOCKET实现HTTP. SOCKET是实现传输层协议的一种编程API,能够是TCP.也能够是UDP. (二)Socket连接与HTTP连接差

socket http tcp udp ip 协议

Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接. socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信 实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议. socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API

图说使用socket建立TCP连接

在网络应用如火如荼的今天,熟悉TCP/IP网络编程,那是最好不过.如果你并不非常熟悉,不妨花几分钟读一读. 为了帮助快速理解,先上个图,典型的使用socket建立和使用TCP/UDP连接过程为(截图来源戳这里): 下面仅讲述TCP连接建立的过程. (参考资料来自这里) 1. Initial State (初始阶段) o TCP is connection based, ... establishing it is a complex multistage process o initially

Socket编程(TCP/UDP) - 初学(C语言)

Socket socket函数 TCP代码实现 TCP Server TCP Client UDP代码实现 UDP Server UDP Client Socket 先介绍一下socket的启动过程: 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认. (1)服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态. (2)客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器

rpc、socket、tcp/udp简要梳理

RPC:远程过程调用(分布式.微服务间的方法调用) HTTP:无状态,每次请求都要发送一个request,服务器响应之后就断掉(http header中的keep-alive指的是tcp) TCP:面向连接,三次握手保证通信可靠 UDP:非面向连接,不可靠,速度快(可以手动对数据收发进行验证,IM系统多采用,QQ) Socket:TCP协议的接口实现,面向传输层进行网络编程, socket并不是一种协议,是在程序员层面上对TCP/IP协议的封装和应用.其实是一个调用接口,方便程序员使用TCP/I

Windows socket c++ TCP UDP 简单客户端 vs2013

socket 主要是网络中进程之间的通信,起源于Unix,而"一切皆可文件"的思想一样可以用在socket上,即 打开 -> 读写 -> 关闭. int socket(int domain, int type, int protocol):(服务端 & 客户端) socket函数对应于普通文件的打开操作.普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket. 这个so

php socket通信(tcp/udp)

注意 1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1 2.server.php后台跑起来的时候 nohup php server.php > /var/tmp/a.log 2>&1 & 一: udp 方式 1) server.php <?php //error_reporting( E_ALL ); set_time_limit( 0 ); ob_implicit_flush(); $socket = socket_create( AF_IN

[python] 网络编程之套接字Socket、TCP和UDP通信实例

很早以前研究过C#和C++的网络通信,参考我的文章: C#网络编程之Tcp实现客户端和服务器聊天 C#网络编程之套接字编程基础知识 C#网络编程之使用Socket类Send.Receive方法的同步通讯 Python网络编程也类似.同时最近找工作笔试面试考察Socket套接字.TCP\UDP区别比较多,所以这篇文章主要精简了<Python核心编程(第二版)>第16章内容.内容包括:服务器和客户端架构.套接字Socket.TCP\UDP通信实例和常见笔试考题. 最后希望文章对你有所帮助,如果有不