1. import socket
  2. import threading
  3. host=''
  4. port=6889
  5.  
  6. def cilenThred(conn,addr):
  7. print("成功接受客户端{}的连接:{}".format(addr[0],str(addr[1])))
  8. #服务器向客户端发送信息说明已经连接成功
  9. msg='你已经成功连接到服务器'
  10. conn.sendall(bytes(msg,encoding="utf-8"))
  11. while True:
  12. data=conn.recv(1024)
  13. print("服务器接受到的数据为{}".format(str(data,encoding="utf-8")))
  14. message='server>>{}'.format(str(data,encoding="utf-8"))
  15. conn.sendall(bytes(message,encoding="utf-8"))
  16. chioce = str(conn.recv(1024),encoding="utf-8")
  17. if chioce=="exit":
  18. conn.close()
  19. break
  20. else:
  21. pass
  22.  
  23. try:
  24. s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  25. #绑定ip地址和端口号
  26. s.bind((host,port))
  27. print('成功绑定了ip地址,端口号为{}'.format(port))
  28. #服务器创建监听
  29. s.listen(10)
  30. print("创建监听模式")
  31. while True:
  32. #成功接收客户端的连接,兵返回连接对象和地址
  33. conn,addr=s.accept()
  34. t=threading.Thread(target=cilenThred,args=(conn,addr))
  35. t.start()
  36. except socket.error as msg:
  37. print("socket出现错误,错误为{}".format(msg))
  38. finally:
  39. s.close()

客户端:

  1. import socket
  2. import sys
  3.  
  4. host="localhost"
  5. port=6889
  6.  
  7. try:
  8. s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  9. print('成功创建socket对象')
  10. s.connect((host,port))
  11. print("成功连接到服务器端")
  12. reply=str(s.recv(1024),encoding="utf-8")
  13. print("成功接受到服务器返回的内容:{}".format(reply))
  14. while True:
  15. message=input("请输入要发送到服务器的信息》》")
  16. s.sendall(bytes(message,encoding="utf-8"))
  17. print("向服务器发送请求成功")
  18. reply1=str(s.recv(1024),encoding="utf-8")
  19. print("成功接受到服务器返回的内容{}".format(reply1))
  20. chioce=input("是否继续输入?(y/n)")
  21. if chioce.lower()=="y":
  22. s.sendall(bytes("ok",encoding="utf-8"))
  23. pass
  24. else:
  25. s.sendall(bytes("exit",encoding="utf-8"))
  26. print("输入结束")
  27. break
  28. except socket.error as msg:
  29. print("创建socket错误,错误为{0}".format(msg))
  30. sys.exit(-1)
  31. finally:
  32. s.close()

socket 套接字服务器端和客户端发送信息的更多相关文章

  1. python socket 套接字编程 单进程服务器 实现多客户端访问

    服务器: import socket #单进程服务器 实现多客户端访问 IO复用 #吧所有的客户端套接字 放在一个列表里面,一次又一次的便利过滤 server = socket.socket(sock ...

  2. Python进阶----SOCKET套接字基础, 客户端与服务端通信, 执行远端命令.

    Python进阶----SOCKET套接字基础, 客户端与服务端通信, 执行远端命令. 一丶socket套接字 什么是socket套接字: ​ ​  ​ 专业理解: socket是应用层与TCP/IP ...

  3. socket套接字编程

    一.概述 1.socket是一种进程间通信方式,既可以用于一台机器,也可以用于网络.常用语C/S模型. 2.可以跨越Windows和Linux操作系统,可以跨越不同语言. 3.注意网络字节序和主机字节 ...

  4. 网络编程初识和socket套接字

    网络的产生 不同机器上的程序要通信,才产生了网络:凡是涉及到倆个程序之间通讯的都需要用到网络 软件开发架构 软件开发架构的类型:应用类.web类 应用类:qq.微信.网盘.优酷这一类是属于需要安装的桌 ...

  5. Python之异常处理和socket套接字连接7

    一.异常处理 1)异常处理的使用意义 什么是异常处理 异常是程序发生错误的信号,即程序一旦出错就会立刻产生一个异常,如果该异常没有被处理 那么异常就抛出来,程序的运行也随之终止 异常分为三部分: 异常 ...

  6. Python Web学习笔记之socket套接字

    套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象.它们允许程序接受并进行连接,如发送和接受数据.为了建立通信通道,网络通信 ...

  7. 19 网络编程--Socket 套接字方法

    1.Socket(也称套接字)介绍 socket这个东东干的事情,就是帮你把tcp/ip协议层的各种数据封装啦.数据发送.接收等通过代码已经给你封装好了 ,你只需要调用几行代码,就可以给别的机器发消息 ...

  8. 19、网络编程 (Socket套接字编程)

    网络模型 *A:网络模型 TCP/IP协议中的四层分别是应用层.传输层.网络层和链路层,每层分别负责不同的通信功能,接下来针对这四层进行详细地讲解. 链路层:链路层是用于定义物理传输通道,通常是对某些 ...

  9. 31_网络编程(Socket套接字编程)_讲义

    今日内容介绍 1.网络三要素及传输协议 2.实现UDP协议的发送端和接收端 3.实现TCP协议的客户端和服务器 4.TCP上传文件案例 01网络模型 *A:网络模型 TCP/IP协议中的四层分别是应用 ...

随机推荐

  1. form表单中button按钮返回上一页解决办法

    解决Form中button按钮不好用的问题解决办法. 方法一: 1.在Form表单标签中国增加一个属性,如下图,红框处 2.返回按钮样式 3.onclick方法需要跳转的页面,遮挡处为需要返回的页面 ...

  2. mysql 从一个表查询数据插入另一个表或当前表

    mysql insert into 表明(uid,lng,lat) SELECT uuid,lng,lat FROM 表明

  3. set操作

    Set操作,Set集合就是不允许重复的列表 sadd(name,values) # name对应的集合中添加元素 scard(name) 获取name对应的集合中元素个数 sdiff(keys, *a ...

  4. adb连接夜神模拟器执行命令

    1.要进入夜神模拟器的bin目录 2.连接夜神模拟器 3.执行命令 cd %~dp0 nox_adb.exe connect 127.0.0.1>nul set num= :ok set /a ...

  5. BFC知识点概括与总结

    什么是BFC?如何生成一个BFC?BFC有什么作用? 一:什么是BFC? 首先了解CSS中两个概念:box和formatting context. Box:CSS布局中的基本单位.一个页面由多个box ...

  6. Redis实战 - 5事务:multi、exec和watch

    介绍 redis的目标的是: 简洁,高效,由于事务本身就是一个很复杂的东西,所有我们不能把事务做的太复杂. DISCARD 取消事务,放弃执行事务块内的所有命令. EXEC 执行所有事务块内的命令. ...

  7. RabbitMQ通过Exchange.topic 对routingkey 进行正则表达式匹配

    消费者: static void Main(string[] args) { ConnectionFactory factory = new ConnectionFactory() { HostNam ...

  8. jedis keys和scan操作

    关于redis的keys命令的性能问题 KEYS pattern 查找所有符合给定模式 pattern 的 key . KEYS * 匹配数据库中所有 key . KEYS h?llo 匹配 hell ...

  9. CMD运行命令每次都要进入很麻烦

    20:35:52 win+r  输入regedit 进入注册表 找到HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor项 创建AutoRun ...

  10. setOnTouchListener在小米手机中不走ACTION_UP而是走ACTION_CANCEL

    单点触控: MotionEvent.ACTION_DOWN:手指 初次接触到屏幕 时触发. MotionEvent.ACTION_MOVE:手指 在屏幕上滑动 时触发,会多次触发. MotionEve ...