socket编程

Posted 开飞机的贝塔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socket编程相关的知识,希望对你有一定的参考价值。

客户端:

#-*- coding:utf-8 -*-
#客户端程序
import socket

client = socket.socket() #1、创建一个客户端对象

client.connect((‘localhost‘,22332)) #2、连接到服务器

client.send(b‘hello‘) #3、发送数据

data = client.recv(1024) #4、接收数据

print(‘接受的数据:‘,data)

client.close() #5、关闭客户端

 服务器:

#-*- coding:utf-8 -*-
#服务器程序
import socket

server = socket.socket() #1、创建服务器套接字对象

server.bind((‘localhost‘,22332)) #2、绑定ip和端口

server.listen() #3、让套接字对象处于监听状态
print("正在监听...")

conn,addr = server.accept() #接收客户端报文
print("报文来了!")
print("conn:",conn,"addr:",addr)

data = conn.recv(1024) #接收报文中的数据
print("客户端的数据:",data)

conn.send(data.upper()) #发送响应报文

server.close() #关闭服务器

 执行结果:

客户端:

接受的数据: b‘HELLO‘

 服务器:

正在监听...
报文来了!
conn: <socket.socket fd=356, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=(‘127.0.0.1‘, 22332), raddr=(‘127.0.0.1‘, 63173)> addr: (‘127.0.0.1‘, 63173)
客户端的数据: b‘hello‘
[Finished in 3.4s]

 后记:

在sublime3中运行程序时报错

[Decode error - output not utf-8]

解决方式如下:

在插件目录下的User目录下新建一个文件python3.6.sublime-build,内容如下

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "encoding":"cp936"
}

 

以上是关于socket编程的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

使用 Pygments 检测代码片段的编程语言

面向面试编程代码片段之GC

如何在 Django Summernote 中显示编程片段的代码块?

以编程方式将按钮添加到片段