首页 > 其他 > 详细

网络编程: 套接字基于TCP的应用

时间:2021-01-03 21:37:46      阅读:33      评论:0      收藏:0      [点我收藏+]

1、模拟通信,进行消息收发

【1】初版server端

from socket import *
# 1、创建套接字对象
sock = socket(family = AF_INET,type = SOCK_STREAM,proto = 0)
# 2、绑定地址
sock.bind(("127.0.0.1",8989))
# 3、设置监听
sock.listen(5)
#4、等待连接
print("等待客户端连接...")
connd,addr = sock.accept()
print("已有客户端连接:",addr)

#5、消息收发
#接收消息
data = connd.recv(1024)
print("服务器收到的消息:",data.decode())
#给连接的客户端回复消息,
#给连接的客户端回复消息,
# send方法的参数必须为字节串,【1】【2】两种方式均可以
#【1】对消息进行编码,转换为字节串
#使用【2】的话,不能使用中文,只能为ASCII编码
# sed = connd.send("The server accepted your msg.".encode()) # 【1】
sed = connd.send(b"The server accepted your msg.") #【2】

print("send %d bytes"%sed)

#6、关闭套接字
connd.close()
sock.close()

【1】初版client端  

import socket
# 1、创建套接字对象
sock = socket.socket()
#-------------------
# import导入方式导入socket的话,socket方法不能添加参数,server也一样。
# from import *方式导入时可以添加参数 #python版本:3.7.6
#sock = socket.socket(sock_family = AF_INET, sock_type = SOCK_STREAM,proto = 0)
# Traceback (most recent call last):
#   File "D:/python_program/TCP/tcp-client.py", line 4, in <module>
#     sock = socket.socket(sock_family = AF_INET, sock_type = SOCK_STREAM,proto = 0)
# NameError: name ‘AF_INET‘ is not defined
#------------------
#2 、发起连接
sock.connect(("127.0.0.1",8989))
#3、消息收发
#输入要发送的消息
msg = input("请输入要发送的消息:Msg>>>")
#发送消息
#-----
#sed=sock.send(msg.encode())
#print("send %d bytes"%sed)
#----
sock.send(msg.encode())
# 接收消息
data = sock.recv(1024)
print("收到服务器回复的消息:",data.decode())
#4、关闭套接字
sock.close()

#===========================================================================#

 

网络编程: 套接字基于TCP的应用

原文:https://www.cnblogs.com/longyuu/p/14226483.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!