Chinaunix首页 | 论坛 | 博客
  • 博客访问: 136731
  • 博文数量: 27
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 136
  • 用 户 组: 普通用户
  • 注册时间: 2019-08-05 22:12
个人简介

纸上得来终觉浅,绝知此事要躬行。 生命不息,奋斗不止。

文章分类

全部博文(27)

文章存档

2021年(1)

2020年(26)

我的朋友

分类: Python/Ruby

2021-08-08 20:41:05


  1. 以下纯属个人练习,有错误之处,望雅正
  2. #*coding:utf-8*
  3. import socket
  4. """
  5. TCP 的客户端编程
  6. 1.socket
  7. 2.connet (TCP)
  8. 3.send
  9. 4.close
  10. """

  11. def CC_client():
  12.     # 创建
  13.     tcp_cli = socket.socket(family=socket.AF_INET,type=socket.SOCK_STREAM)

  14.     # 链接
  15.     SER_IP = "192.168.43.90"
  16.     SER_PORT = 8888
  17.     ser_info = (SER_IP,SER_PORT)
  18.     tcp_cli.connect(ser_info)

  19.     #send
  20.     while True:
  21.         send_info = str(input("客户端发送:"))
  22.         # if send_info == "exit":
  23.         # break
  24.         tcp_cli.send(send_info.encode("utf-8"))

  25.         #recv

  26.         tcp_cli_recv_info = tcp_cli.recv(1024)
  27.         # print("客户端接收:%s" % tcp_cli_recv_info.decode("utf-8"))
  28.         print(tcp_cli_recv_info)
  29.     #clsoe
  30.     tcp_cli.close()

  31. if __name__ == "__main__":
  32.     CC_client()


  1. #--coding:utf-8--
  2. import socket
  3. """
  4. TCP 的服务端
  5. 1,socket 创建socket
  6. 2.bind 绑定IP和端口
  7. 3.listen 处于监听状态
  8. 4.accept 接进来客户端的连接
  9. 5.recv/send 接受或者发送信息
  10. 6.close 关闭
  11. """
  12. def CC_server():
  13.     # 创建
  14.     tcp_ser = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)

  15.     #bind
  16.     SER_IP = "192.168.43.90"
  17.     SER_PORT = 8888
  18.     ser_info = (SER_IP, SER_PORT)
  19.     tcp_ser.bind(ser_info)

  20.     #listen
  21.     LISTEN_NUM = 10
  22.     tcp_ser.listen(LISTEN_NUM)

  23.     while True: #循环为多个客户端服务,一直处于监听状态
  24.         #accept 1默认会阻塞,2并返回一个新的套接字用于和接进来的客户端进行数据传输,3并记录客户端的信息,为用户进行服务
  25.         print("服务器的IP:%s,端口:%d,正在等待新的客户端的到来" % (SER_IP,SER_PORT ))
  26.         tcp_ser_for_client,client_addr = tcp_ser.accept()
  27.         print("客户端已经到来,信息如下:%s" % str(client_addr))

  28.         while True: #循环为同一个用户服务多次
  29.             #recv 返回值为空时,则客户端调用了close
  30.             tcp_ser_recv_info = tcp_ser_for_client.recv(1024)
  31.             if ((tcp_ser_recv_info == "exit") or (tcp_ser_recv_info == None)):
  32.                 break
  33.             print("服务端接收:%s" % tcp_ser_recv_info.decode("utf-8"))

  34.             #send
  35.             tcp_ser_send_info = str(input("服务端发送:"))
  36.             tcp_ser_for_client.send(tcp_ser_send_info.encode("utf-8"))

  37.     #close
  38.         #close 关闭客户端的连接
  39.         tcp_ser_for_client.close()
  40.         print("为客户端%s的服务已经结束" % str(client_addr))
  41.     tcp_ser.close()

  42. if __name__ == "__main__":
  43.     CC_server()



阅读(2153) | 评论(0) | 转发(0) |
0

上一篇:测试基础--思维导图简单梳理

下一篇:没有了

给主人留下些什么吧!~~