1 Star 0 Fork 0

fanyangchu/LearnPython

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
python_socket.py 1.87 KB
一键复制 编辑 原始数据 按行查看 历史
xianhu 提交于 2019-09-10 17:08 . add some cases
# _*_ coding: utf-8 _*_
"""
Socket编程
"""
import sys
import socket
def server_func(port):
"""
服务端
"""
# 1. 创建socket对象
server = socket.socket()
# 2. 绑定ip和端口
server.bind(("127.0.0.1", port))
# 3. 监听是否有客户端连接
server.listen(10)
print("服务端已经启动%s端口......" % port)
# 4. 接收客户端连接
sock_obj, address = server.accept()
sock_obj.settimeout(3)
print("客户端:%s,超时时间:%s" % (address, sock_obj.gettimeout()))
while True:
try:
# 5. 接收客户端发送的消息
recv_data = sock_obj.recv(1024).decode("utf-8")
print("客户端端 -> 服务端: %s" % recv_data)
if recv_data == "quit":
break
# 6. 给客户端回复消息
send_data = "received[%s]" % recv_data
sock_obj.send(send_data.encode("utf-8"))
print("服务端 -> 客户端: %s" % send_data)
except Exception as excep:
print("error: ", excep)
# 7. 关闭socket对象
sock_obj.close()
server.close()
def client_func(port):
"""
客户端
"""
# 1. 创建客户端的socket对象
client = socket.socket()
# 2. 连接服务端, 需要指定端口和IP
client.connect(("127.0.0.1", port))
while True:
# 3. 给服务端发送数据
send_data = input("客户端>").strip()
client.send(send_data.encode("utf-8"))
if send_data == "quit":
break
# 4. 获取服务端返回的消息
recv_data = client.recv(1024).decode("utf-8")
print("服务端 -> 客户端: %s" % recv_data)
# 5. 关闭socket连接
client.close()
if __name__ == '__main__':
flag = sys.argv[1]
if flag == "server":
server_func(9901)
else:
client_func(9901)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/fanych/LearnPython.git
git@gitee.com:fanych/LearnPython.git
fanych
LearnPython
LearnPython
master

搜索帮助