Python socket TCP网络编程,自制聊天软件

30 篇文章 7 订阅
1 篇文章 0 订阅

使用Python的socket库可以实现网络编程。我们可以自制聊天软件了!

本程序涉及两个代码文件:myserver.py和myclient.py。

都在一个机子上运行,先运行服务器代码,再运行客户端代码,最终的效果如下:

~/Desktop/webconnection$ python3.6 myserver.py 
服务器就绪!
有人连进来了,看看他发来了什么?
他说: Hello! How are you doing!
回他什么呢?Fine. What about you?
已回复,等待下一次接入……
有人连进来了,看看他发来了什么?
他说: I am doing well.
回他什么呢?OK. That sounds nice! Shall we plan a picnic this weekend?
已回复,等待下一次接入……
有人连进来了,看看他发来了什么?
他说: Ah, it's nice! 
回他什么呢?OK. Let's meet this Saturday morning at the park gate.
已回复,等待下一次接入……
有人连进来了,看看他发来了什么?
他说: No problem. See you then!
回他什么呢?See you!
已回复,等待下一次接入……
~/Desktop/webconnection$ python3.6 myclient.py 
请输入信息:Hello! How are you doing!
信息已发送,等待回复……
收到回复: Fine. What about you?
请输入信息:I am doing well.
信息已发送,等待回复……
收到回复: OK. That sounds nice! Shall we plan a picnic this weekend?
请输入信息:Ah, it's nice! 
信息已发送,等待回复……
收到回复: OK. Let's meet this Saturday morning at the park gate.
请输入信息:No problem. See you then!
信息已发送,等待回复……
收到回复: See you!
请输入信息:

两个代码文件分别如下:

#myserver.py

import socket

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

# 绑定监听端口
s.bind(('127.0.0.1',8888))

# 监听
s.listen(1)
print("服务器就绪!")

while True:
    # 接收连接
   sock,addr = s.accept()
   print("有人连进来了,看看他发来了什么?")
   # 接收数据
   buffer = []
   d = sock.recv(1024)
   buffer.append(d)

   # 把字节连接起来
   data = b''.join(buffer)
   print("他说:", data.decode())
   senddata=input("回他什么呢?")
   sock.send(bytes(senddata,encoding="UTF-8"))
   sock.close
   print("已回复,等待下一次接入……")

#myclient.py

  1 # 导入socket这个库                                                          
  2 import socket
  3 
  4 while True:
  5     senddata=input("请输入信息:")
  6     # 创建一个socket对象
  7     s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  8     # 开始建立TCP连接
  9     s.connect(("127.0.0.1",8888))
 10     s.sendall(bytes(senddata,encoding="UTF-8"))
 11     print("信息已发送,等待回复……")
 12     # 接收数据
 13     buffer = []
 14     d = s.recv(1024)
 15     buffer.append(d)
 16 
 17     # 把字节连接起来
 18     data = b''.join(buffer)
 19     print("收到回复:",data.decode())
 20 
 21     # 关闭连接
 22     s.close()  1 # 导入socket这个库                                                          
  2 import socket
  3 
  4 while True:
  5     senddata=input("请输入信息:")
  6     # 创建一个socket对象
  7     s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  8     # 开始建立TCP连接
  9     s.connect(("127.0.0.1",8888))
 10     s.sendall(bytes(senddata,encoding="UTF-8"))
 11     print("信息已发送,等待回复……")
 12     # 接收数据
 13     buffer = []
 14     d = s.recv(1024)
 15     buffer.append(d)
 16 
 17     # 把字节连接起来
 18     data = b''.join(buffer)
 19     print("收到回复:",data.decode())
 20 
 21     # 关闭连接
 22     s.close()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值