怎么在python中利用多线程编写一个tcp客户端程序

这篇文章给大家介绍怎么在python中利用多线程编写一个tcp客户端程序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

代码如下:

fromsocketimport*
importthreading
tcp_socket=socket(AF_INET,SOCK_STREAM)
tcp_socket.connect(('192.168.1.102',8080))
true=True


defrece_msg(tcp_socket):
globaltrue
whiletrue:
recv_msg=tcp_socket.recv(1024).decode("utf8")
ifrecv_msg=="exit":
true=False
print('接收到的信息为:%s'%recv_msg)


defsend_msg(tcp_socket):
globaltrue
whiletrue:
send_msg=input('请输入要发送的内容')
tcp_socket.send(send_msg.encode('utf-8'))
ifsend_msg=="exit":
true=False


defmain():
whileTrue:
print('*'*50)
print('1发送消息\n2接收消息')
option=int(input('请选择操作内容'))
print('*'*50)
ifoption==1:
threading.Thread(target=send_msg,args=(tcp_socket,)).start()
elifoption==2:
threading.Thread(target=rece_msg,args=(tcp_socket,)).start()
else:
print('输入有误')
break


if__name__=='__main__':
main()

该代码只能实现要么一直发送,要么一直接收

运行如图

发送数据时截图

怎么在python中利用多线程编写一个tcp客户端程序

怎么在python中利用多线程编写一个tcp客户端程序

接收数据时截图

怎么在python中利用多线程编写一个tcp客户端程序

怎么在python中利用多线程编写一个tcp客户端程序

为解决只能单方发送和接收问题,现将代码修改如下

fromsocketimport*
importthreading
tcp_socket=socket(AF_INET,SOCK_STREAM)
tcp_socket.connect(('192.168.1.102',8080))
true=True


defrece_msg(tcp_socket):
globaltrue
whiletrue:
recv_msg=tcp_socket.recv(1024).decode("utf8")
ifrecv_msg=="exit":
true=False
print('接收到的信息为:%s\n'%recv_msg)


defsend_msg(tcp_socket):
globaltrue
whiletrue:
send_msg=input('请输入要发送的内容\n')
tcp_socket.send(send_msg.encode('utf-8'))
ifsend_msg=="exit":
true=False


threading.Thread(target=send_msg,args=(tcp_socket,)).start()
threading.Thread(target=rece_msg,args=(tcp_socket,)).start()

运行结果

怎么在python中利用多线程编写一个tcp客户端程序

关于怎么在python中利用多线程编写一个tcp客户端程序就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

发布于 2021-03-24 01:23:11
收藏
分享
海报
0 条评论
170
上一篇:怎么在java项目中利用FileVisitor遍历文件或目录 下一篇:怎么在layui中使用router实现传参
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码