python_socket

server_tcp.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import socket
import sys

# 创建 socket 对象
serversocket = socket.socket(
socket.AF_INET, socket.SOCK_STREAM)
# socket.AF_INET6 ipv6
# socket.SOCK_DGRAM udp

# 获取本地主机名
host = socket.gethostname()
print(host)

port = 9999

# 绑定地址与端口号
serversocket.bind((host, port))

# 设置最大连接数,超过后排队
serversocket.listen(5)

while True:
# 建立客户端连接 接受TCP连接并返回(conn,addr)
clientsocket,addr = serversocket.accept()

print("tcp 连接地址: %s" % str(addr))

msg='欢迎访问'+ "\r\n"
clientsocket.send(msg.encode('utf-8')) # 发送TCP数据
clientsocket.close()

client_tcp.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import socket
import sys

# 创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 获取本地主机名
host = '10.40.191.58'
print(host)

# 设置端口号
port = 9999

# 连接服务,指定主机和端口
s.connect((host, port))

# 接收小于 1024 字节的数据
msg = s.recv(1024)

s.close()

print (msg.decode('utf-8'))

server_udp.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import socket
import sys

# 创建 socket 对象
serversocket = socket.socket(
socket.AF_INET, socket.SOCK_DGRAM)
# socket.AF_INET6 ipv6
# socket.SOCK_DGRAM udp

# 获取本地主机名
host = '127.0.0.1'
print(host)

port = 10000

# 绑定地址与端口号
serversocket.bind((host, port))

# 设置最大连接数,超过后排队
# serversocket.listen(5) 不需要

while True:


data, addr = serversocket.recvfrom(1024)
print("udp 连接地址: %s" % str(addr))

serversocket.sendto(f'hello {data}!'.encode('utf-8'), addr)

client_udp.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import socket
import sys

s = socket.socket(
socket.AF_INET, socket.SOCK_DGRAM)

host = '127.0.0.1'
port = 10000


for data in ['abd', '嘻嘻']:
s.sendto(data, (host, port))
print(s.recv(102444).code('utf-8'))
s.close()