手记

关于Socket的基本传输笔记


Socket用来传递网络信息。

服务器端:

首先创建一个服务器的py文件?

然后导入一下socket文件。

import socket

导入之后,需要创建一个实例。那么这里就用变量sk来充当这个实例。

sk = socket.socket()

因为socket类中的__init__()所需参数全都有默认值,如果在不需要更改的情况下直接为空就可以了。

一个服务器需要IP地址和端口,这里的IP和端口要用tuple(元组),定义一个变量赋值。这里的IP用本地代替。端口则用8888。

ip = ('127.0.0.1',8888)

然后sk绑定这个ip。

sk.bind(sk)

同时还可以设置一下同时连接数,5为数量,默认为1

sk.listen(5)

绑定之后就可以接受了。为了避免不知道程序在干什么,可以在接收前print一下告知。conn为链接的用户,address是用户的地址

print('程序正在接受信息....')
conn,address = sk.accept()

这时候代码就滞留在接受的时候了,只有当接收到客户端才会继续运行。

我们则可以对客户端的连接做出反应,send命令是发送。

#定义信息
msg = "hello World"
#返回信息
# python3.x以上,网络数据的发送接受都是byte类型
#如果发送的数据是str型,则需要进行编码
conn.send(msg.encode())

然后服务器端可以主动关闭连接

conn.close()

整段代码就是:

import socket

#创建实例
sk = socket.socket()

#定义ip和port
ip_port = ("127.0.0.1",8888)

#绑定监听
sk.bind(ip_port)
#最大连接数
sk.listen(5)

#提示信息
print('正在进行等待接受数据.....')
#接受数据

conn, address = sk.accept()

#定义信息
msg = "hello World"

#返回信息
# python3.x以上,网络数据的发送接受都是byte类型
#如果发送的数据是str型,则需要进行编码
conn.send(msg.encode())

#主动关闭连接
conn.close()

客户端与服务端类似,这边直接放代码:

#导入模块

import socket

#实例初始化
client = socket.socket()
#访问的服务器端的ip和端口
ip_port = ("127.0.0.1",8888)
#连接主机
client.connect(ip_port)

#接收主机信息,参数是最大大小

data = client.recv(1024)
#打印接收的数据

print(data.decode())


2人推荐
随时随地看视频
慕课网APP

热门评论

还有就是必须服务器端和客户端同时运行

还有就是必须服务器端和客户端同时运行

查看全部评论