python学习总结-网络编程

网络编程

服务端

1、创建socket

2、端口绑定

3、开启监听

4、持续等待连接

5、获取请求

6、回复请求

7、关闭连接 

客户端

1、创建对象

2、获取连接

3、发送请求

4、接收数据

5、断开连接

#!C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe
#coding=gbk#一定要注意设置字符编码,否则很可能报错
import socket
import sys

# 1、创建socket对象
serversocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)


# 2、绑定
host = socket.gethostname()
port = 9999
serversocket.bind((host,port))


# 3、监听,设置最大连接数,超出后排队
serversocket.listen(5)


#4、等待接入
while True:
    clientsocket,addr = serversocket.accept()
    print("连接地址:%s"% str(addr))#返回的第一个值为服务器信息,第二个值为客户端信息
    msg="欢迎访问菜鸟教程"
#5、主动发送消息
    clientsocket.send(msg.encode("utf-8"))
#6、接收请求

#7、关闭连接
    clientsocket.close()
#!C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe
import socket
import sys
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host = socket.gethostname()
port = 9999
s.connect((host,port))
msg= s.recv(1024)
s.close()
print(msg.decode("utf-8"))

要点:socket套接字其实就是一个特殊的文本,里面存储着用于通讯的地址和端口,还有一些协议,fid,这些我们通过打印socket可以的知道, 我们要注意的是,在服务器端的首次创建出的socke套接字只用于绑定端口和设置监听,真正用来进程通讯的是通过accept()返回的第一个参数(clientsocket),即用于通讯的套接字,里面含有服务端地址,服务端用于服务的端口,客户端地址,客户端用于通讯的端口,地址是用来网络寻址找到对应电子设备(电脑等),端口则是用于进程间的通讯。所以我们可以知道,如果有3个客户端连接服务器,那么服务器端将有4个套接字,1个是服务器端用于绑定和监听的套接字,3个分别与客户端通信的套接字,每个客户端都有一个用于与服务端通信的套接字。

在写本文时,查了下资料,看到了篇文章,真的很秀。。。。所以我就不写了,大家看这篇文章,这篇文章很长,是作者整理了很久的,虽然很多内容是重复的,但这也能够让我们加深印象。

传送门:https://www.cnblogs.com/zhangyux/p/6109284.html

猜你喜欢

转载自blog.csdn.net/qq_36528311/article/details/88618627
今日推荐