服务端:

import socket
sk = socket.socket() #创建对象
sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #避免服务器重启时报address already in use错误
sk.bind(('127.0.0.1',8877)) #把地址绑定到套接字(ip地址,端口号)
sk.listen() #监听链接
conn,addr = sk.accept() #接受客户端链接
ret = conn.recv(1024) #接受客服端信息(数据长度)
print(ret) #打印客户端信息
conn.send(b'hi') #向客户端发送星系(必须是bytes类型)
conn.close() #关闭客户端连接
sk.close() #关闭服务器套接字

客户端:

import socket
sk = socket.socket() #创建对象
sk.connect(('127.0.0.1',8877)) #连接服务器(ip地址,端口号)
sk.send(b'hello') #向服务器发送信息(必须是bytes类型) ret = sk.recv(1024) #接收信息(数据大小)
print(ret) #打印信息
sk.close() #关闭对象

  有收必有发,收发必相等,send和rexv必须是对应的

    send  -----  recv

    send  -----  recv

    recv  -----  send

传递中文:

# 服务端
# 接收中文
ret = conn.recv(1024).encode('utf-8')
print(ret) #打印
# 发送中文
conn.send(bytes('七点半',encoding='utf-8')) # 客户端
# 发送中文
sk.send(bytes('几点了'.encode('utf-8')))
# 接收中文
ret = sk.recv(1024).encode('utf-8')
print(ret) #打印

实例:聊天

  服务端:

import socket
sk = socket.socket() #创建对象
sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #避免服务器重启时报address already in use错误
sk.bind(('127.0.0.1',8877)) #把地址绑定到套接字(ip地址,端口号)
sk.listen() #监听链接
conn,addr = sk.accept() #接受客户端链接 while True:
ret = conn.recv(1024).decode('utf-8')
print(ret)
if ret == 'bye':
conn.send(b'bye')
break
info = input('>>>')
conn.send(bytes(info,encoding='utf-8')) conn.close() #关闭客户端连接
sk.close() #关闭服务器套接字

客户端:

import socket
sk = socket.socket() #创建对象
sk.connect(('127.0.0.1',8877)) #连接服务器(ip地址,端口号) while True:
info = input('>>>')
sk.send(bytes(info,encoding='utf-8'))
ret = sk.recv(1024).decode('utf-8')
print(ret)
if ret == 'bye':
sk.send(b'bye')
break sk.close() #关闭对象

最新文章

  1. MongoDB常用操作--集合2
  2. youtube下载
  3. 【Infomatica】Infomatica PowerCenter 9.1.0配置Repository Service和Integration Service小结
  4. 关于优化sql查询的一个方法。
  5. supersocket中quickstart文件夹下的MultipleCommandAssembly的配置文件分析
  6. 【原】实验室签到PHP版本
  7. 如何使用validate.js进行动态添加和移除表单验证信息
  8. SSH框架应用中常用Jar包用途介绍
  9. 【HDOJ】5096 ACM Rank
  10. android 26 设置项目有多个入口Activity。
  11. MVC 4
  12. MySql数据库在表中添加新字段,设置主键,设置外键,字段移动位置,以及修改数据库后如何进行部署和维护的总结
  13. Docker 列出镜像
  14. Win7 系统记事本乱码及cmd闪退解决办法
  15. 神经网络训练tricks
  16. js实现table用鼠标改变td的宽度,固定table宽度和高度超过显示点
  17. MVC和MVVM对比
  18. nginx 配置简单网站项目(linux下)
  19. c++11の的左值、右值以及move,foward
  20. 我的物联网项目专题移到网站:http://51jdk.com

热门文章

  1. [转帖]Nginx为什么高效?一文搞明白Nginx核心原理
  2. Spring IoC 详解(四)
  3. Feign【替换默认的feign client】
  4. Centos7.3安装jenkins
  5. WUSTOJ 1274: 喂,这里是帅帅的LCM(Java)
  6. 牛客 82E 无向图中的最短距离 (bitset,bfs)
  7. 用python将项目中的所有代码(或txt)合并在一个文件中
  8. Mysql的实现原理
  9. 查准率(precision)和查全率(recall)
  10. webapi IHttpActionResult无引用和config.MapHttpAttributeRoutes()无引用解决办法