博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sokect网络编程
阅读量:7058 次
发布时间:2019-06-28

本文共 1115 字,大约阅读时间需要 3 分钟。

  hot3.png

socket 基本流程:如下图

基于pyhton 3.5 的简单 socket 应用:

server.py

import socketsk=socket.socket()ip_port=('127.0.0.1',9999)#绑定ip+协议+端口:用来唯一标识一个进程,ip_port必须是元组格式sk.bind(ip_port)sk.listen(5)while True:    conn,adress=sk.accept()  #conn:表示与客户端连接线路 可理解为 conn=sk.accept()[0]    conn.send(bytes("Hello World", encoding = "utf8"))   #发送消息    flag=True    while flag:        data=conn.recv(1024)         #接受的数据        print(data)        if data =='exit':            flag=False        conn.send(bytes("sb", encoding = "utf8"))    conn.close()

client.py

import socketclient=socket.socket()ip_port=('127.0.0.1',9999)client.connect(ip_port)while True:    data=client.recv(1024)    print(data)    msg=input('client:请输入')    client.send(bytes(msg, encoding = "utf8"))    if msg=='exit':        break

注意事项:

  • 1、套接字错误:python3.5版本后套接字只能发字节数(bytes),不能发字符串,在python2.7中支持发字符串形式(str)
  • 2、退出只在客户端退出就ok了
  • 3、accept()和s.recv()是堵塞(基于链接正常)
  • 4、listen(n):n代表:能挂起的链接数,如果n=1,代表可以链接的一个,挂起一个,第三个拒绝链接

socket 常用参数:

send() 

发送数据

python3.5:只支持字节方式传递 ,需要字符串转字节 --> bytes('xxx' ,encoding='utf-8')

python2.7:可以按照字符串方式传递 ,可以直接使用字符串

转载于:https://my.oschina.net/esdn/blog/827441

你可能感兴趣的文章
《Spring Recipes》第二章笔记:Loading External Resources
查看>>
APICloud用body来提交json数据
查看>>
UNIX网络通信详解
查看>>
让linux启动更快的方法
查看>>
1234
查看>>
windows下composer设置
查看>>
noVNC ready: native WebSockets, canvas renderin...
查看>>
Primary market
查看>>
【java多线程】生产者消费者之ArrayBlockingQueue实现
查看>>
101条风险管理准则
查看>>
elasticsearch安装及分词、拼音插件安装
查看>>
erlang mochiweb的测试数值
查看>>
关于cuda拷贝的速度测试
查看>>
线程池
查看>>
go revel 简单性能测试
查看>>
Nginx入门之负载均衡
查看>>
正则匹配首尾
查看>>
android点滴7:adb不是内部或外部命令,也不是可运行的程序或批量文件
查看>>
Flex判断两个字符串是否相等
查看>>
href="javascript:" 无法传递对象
查看>>