一、TCP

1、客户端

import socket
sk = socket.socket() # 买个手机
sk.connect(('127.0.0.1',8080)) # 拨号
ret = sk.recv(1024)
print(ret)
sk.send(b'byebye!')
sk.close()

2、服务端

import socket
sk = socket.socket() # 创建了一个socket对象
sk.bind(('192.168.21.36',8080)) # 绑定一台机器的(ip,端口)
# 回环地址 - 指向自己这台机器
sk.listen() # 建立监听等待别人连接
conn,addr = sk.accept() # 阻塞:在这里等待直到接到一个连接
# conn是连接
# addr是对方的地址
print(conn)
print(addr)
conn.send(b'hello') # 和对方打招呼
msg = conn.recv(1024) # 对方和我说的话
# 有发必有收 收发必相等
print(msg)
conn.close() # 挂电话
sk.close() # 关机

二、UDP

UDP的server不需要进行监听也不需要建立连接,在启动服务值周,只能被动的等待客户端发送消息过来

客户端发送消息的同时还会自带地址信息,消息回复的时候,不仅需要发送消息,还需要把自己的地址发送过去

1、客户端

import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.sendto(b'hello',('127.0.0.1',8080)) # 直接给服务器发送一段消息
msg,addr = sk.recvfrom(1024) # 接收对面的回信
print(msg)
sk.close()

2、服务端

import socket
sk = socket.socket(type=socket.SOCK_DGRAM) # 建立一个socket对象,
# 指定以UDP协议的形式来连接
sk.bind(('127.0.0.1',8080))
# 指定服务的地址
msg,addr = sk.recvfrom(1024) # 接收消息,发送端的地址
print(msg,addr)
sk.sendto(b'HELLO',addr) # 给发送端回复消息
sk.close() # 关闭socket连接

最新文章

  1. Lintcode 97.二叉树的最大深度
  2. PHP、Java对称加密中的AES加密方法
  3. 使用jQuery清空file文件域的解决方案(转)
  4. DCOM中的APPID的用处,以及RemoteServerName的传递问题
  5. UVA1347 旅游(二维递归DP)
  6. CF 445A 简单DP
  7. 20145120 《Java程序设计》第2周学习总结
  8. 三、spark入门:文本中发现5个最常用的word,排除常用停用词
  9. 仿bootstrap的
  10. 04.redis集群+SSM整合使用
  11. Ajax PHP JavaScript MySQL实现简易的无刷新在线聊天室
  12. ScalaPB(3): gRPC streaming
  13. Java Socket网络编程学习笔记(一)
  14. 字符串常量池和String.intern()方法在jdk1.6、1.7、1.8中的变化
  15. 基于IAR平台FreeRTOS移植
  16. c/c++ 标准容器 vector的内存空间是如何自动增长的
  17. sharepoint环境安装过程中几点需要注意的地方
  18. SQL 游标的存储过程示例
  19. wap2app(三)-- 添加引导页
  20. ​python高级数据可视化视频Dash1

热门文章

  1. 解决基于IIS的.net core HttpWebRequest 连接特别慢
  2. 经典面试题:浏览器是怎样解析CSS的?
  3. Android为TV端助力 MediaPlayer 错误代码(error code)总结 转载
  4. 版本控制工具(SVN/Git)介绍
  5. Python 序列化模块(json,pickle,shelve)
  6. iOS 防止离屏渲染为 image 添加圆角
  7. OV摄像头图像采集基础知识总结
  8. 复制命令(ROBOCOPY)
  9. docker-compose编排项目redis容器实现主从复制
  10. Python 位操作运算符