创建TCP服务

(1) 服务端

import socket

host = ” # 表示监听在0.0.0.0
port = 12345 # 端口号,应该>1024
addr = (host, port)
s = socket.socket()

如果没有以下一行设置,当程序结束后,系统默认保留该套接字60秒,无法立即再运行

加上以下设置,程序可以立即重新启动

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(addr)
s.listen(1)
cli_sock, cli_addr = s.accept()
print(‘Client connected from:’, cli_addr)
print(cli_sock.recv(1024))
cli_sock.send(b’I 4 C U\r\n’)
cli_sock.close()
s.close()

客户端访问 telnet 127.0.0.1 12345

(2)
import socket

host = ”
port = 12345
addr = (host, port)
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(addr)
s.listen(1)

while True:
cli_sock, cli_addr = s.accept()
print(‘Client connected from:’, cli_addr)
while True:
data = cli_sock.recv(1024)
if data.strip() == b’quit’:
break
print(data.decode(‘utf8’))
sdata = input(‘> ‘)
sdata = ‘%s\r\n’ % sdata
cli_sock.send(sdata.encode(‘utf8’))

cli_sock.close()

s.close()

客户端
import socket

host = ‘192.168.4.254’
port = 12345
addr = (host, port) # 客户机要连接哪台服务器
c = socket.socket()
c.connect(addr)

while True:
data = input(‘> ‘)
sdata = ‘%s\r\n’ % data
c.send(sdata.encode(‘utf8’))
if data.strip() == ‘quit’:
break
rdata = c.recv(1024)
print(rdata.decode(‘utf8’))

c.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值