首页 > 代码库 > socket编程

socket编程

客户端:

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

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

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

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

data = http://www.mamicode.com/client.recv(1024) #4、接收数据>

 服务器:

#-*- 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 = http://www.mamicode.com/conn.recv(1024) #接收报文中的数据"客户端的数据:",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编程