python网络编程之TCP
来源:互联网 发布:全国网络电视台直播 编辑:程序博客网 时间:2024/05/17 06:39
1.TCP服务端编写过程
2.TCP服务端代码
3.TCP客户端编写过程
4.TCP客户端代码
1.TCP服务端编写过程
首先,网络编程分为客户端编程和服务端编程。先说说服务端的编写
TCP服务端的编写过程
0.所需要引入的包: import socket
1.socket():socket模块中的socket对象 可用于建立一个套接字。原形:socket(family,type)
family 填 :socket.AF_INET 表示地址族为 ipv4 (现在还基本都是用 IPv4)
type 填 :socket.SOCK_STREAM 表示用的协议是 流协议(即TCP)
返回值 : 返回一个套接字对象,暂且把它叫做 s
2.bind():用于把 套接字和(主机地址,端口号)进行绑定,使套接字和主机相关联
bind()是存在套接字对象中的。调用时: 套接字.bind() ,例 s.bind()
bind()只有一个参数: 这个参数是个元组,里面的元素是 主机ip号和端口号,即 bind((ip,端口) )
3.listen():把程序进入监听模式,等待客户端的连接。把socket设置成服务器模式
一个整型参数:这个参数指定程序拒绝连接前,操作系统允许它挂起的连接数量,一般设置为5就行了
同样这个方法也是要用套接字对象调用的,即 s.listen()
4.accept():它会阻塞直到有客户端连接进来,然后返回一个元组,元组的数据是 代表客户端的新套接字 和 客户端的地址
同样这个方法也是要用套接字对象调用的
5.close():用于关闭套接字,停止本进程与服务端或客户端的连接
同样这个方法也是要用套接字对象调用的
6.recv():用于接收远程连接发来的信息,并返回接收到的信息
当没有消息发来时会阻塞。
有一个整形参数:用于指定缓冲区的大小
同样这个方法也是要用套接字对象调用的
7.sendall():用于向远端发送消息 (用sendall代替send)
有一个整数:指定发送的对象或数据
同样这个方法也是要用套接字对象调用的
2.TCP服务端代码
import socket #引入socket模块HOST = '' #服务端不需要指定绑定的本地IP地址PORT = 8888 #指定端口号为 8888s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #创建套接字s.bind((HOST,PORT)) #绑定套接字s.listen(5) #监听conn,addr = s.accept() #等待客户端连接,有客户端连接则返回一个新的套接字来表示客户端print('Client\'s addr:',addr) #打印客户端的信息while True: #循环接收来自服务端的信息 data = conn.recv(1024) #接收客户端的信息 if not data: break print('Receive data:',data.decode('utf-8')) #打印客户端发来的信息,并以utf-8的编码方式来解码。(因为客户端是以UTF-8来编码的 ) conn.sendall(data) #把收到的信息发回客户端conn.close() #关闭套接字
3.TCP客户端编写过程
0.也需要引入 socket模块。 import socket
1.socket():上面已经说过了
2.connect():用于连接服务器
参数:接收一个元组,包含服务器的 IP地址 和 服务器指定的端口号
同样这个方法也是要用套接字对象调用的
3.recv()和send()和close()上面都说过了
4.客户端代码
import socketHOST = 'localhost' #服务端的ip地址,但由于我是在同一台电脑测试,所以就用localhost这个宏PORT = 8888 #服务端指定的端口s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #创建套接字s.connect((HOST,PORT)) #连接服务端data=input("please enter data") #从键盘输出信息while data: s.sendall(data.encode('utf-8')) data = s.recv(512) print('Receive data:\n',data.decode('utf-8')) data = input('please enter data')s.close()
- Python 网络之TCP编程
- python网络编程之TCP
- python 网络编程之 TCP编程
- python网络编程之TCP实现
- Python网络编程--TCP
- 网络编程之TCP
- 网络编程之TCP
- 网络编程之TCP编程
- python网络编程之tcp服务器和客户端
- python网络编程之TCP通信实例和socketserver框架
- 抓包、python网络编程之tcp、udp例子
- Python网络编程---TCP Server
- Python网络编程--TCP Client
- python 网络编程(TCP & UDP)
- TCP网络编程(Python)
- PYthon -网络编程—TCP编程
- c#网络编程之TCP
- java网络编程之TCP
- 谷歌正式推出在线云储存服务…
- 【排序】洛谷 P1059 明明的随机数
- 关于Xcode一直打印AQDefaultDevice
- 编译原理笔记12 自底向上分析技术…
- HDU 1176 免费馅饼 dp
- python网络编程之TCP
- 编译原理笔记13 自底向上分析技术…
- 《活出全新的自己》新版上市
- 算法笔记2 递归与分治策略
- 致李彦宏的公开信
- object-c的开发起步
- ContentType,pageEncoding和…
- TeamTalk源码分析(二) —— 服务器端的程序的编译与部署
- 使用ant手动搭建struts2开发环境