码迷,mamicode.com
首页 > 编程语言 > 详细

python-socket

时间:2018-07-02 00:03:39      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:没有   端口   utf-8   while   bind   指令   AC   数据   inpu   

socket

#client
import socket
import socket
client = socket.socket() #定义协议类型 声明socket类型同时生产链接对象
client.connect((localhost,9999)) #传入一个元祖类型的地址
client.send("上海".encode(utf-8)) #传数据
data = client.recv(1024) #接受数据 1024字节
print("recv:",data.decode()) #打印数据
client.close()

#server
import socket
server = socket.socket()
server.bind((localhost,9999)) #绑定端口
server.listen() #监听端口
print("开始等待")
conn,addr = server.accept() #等待 返回两个标记 连接标记位,连接地址
#conn就是客户端连接过来服务端为其生成的一个实例
print(conn,addr)

print("有客户接入")
data = conn.recv(1024) #接受数据

print("recv:",data)
conn.send(data.upper())
server.close()

发送和接受多次

#server
import socket
server = socket.socket()
server.bind((localhost,9999)) #绑定端口
server.listen() #监听端口

print("开始等待")
conn, addr = server.accept()  # 等待 返回两个标记 连接标记位,连接地址
# conn就是客户端连接过来服务端为其生成的一个实例
print(conn, addr)
print("有客户接入")

while True:
    data = conn.recv(1024) #接受数据
    print("recv:",data)
    conn.send(data)
server.close()

#client
import socket
import socket
client = socket.socket() #定义协议类型 声明socket类型同时生产链接对象
client.connect((localhost,9999)) #传入一个元祖类型的地址

while True:
    msg = input(">>>").strip()
    if len(msg) == 0:continue
    client.send(msg.encode(utf-8)) #传数据
    data = client.recv(1024) #接受数据 1024字节
    print("recv:",data.decode()) #打印数据
client.close()

服务端:

 1.声明实例 写入地址簇 family address

  2.绑定ip地址和端口

  3.开始监听

  4.conn,addr = server.accept() 没有连接阻塞

  5.循环

  6.conn.recv(8192) 不超过8192 8k 接受数据

  7.将接受的数据发送出去 conn.send

客户端:

  1.声明实例

  2.开始连接 client.connect((serverip,port))

  3.发送接收数据

import socket,os
server = socket.socket()
server.bind((localhost,9999))
server.listen()

while True:
    conn,addr = server.accept()
    print("new conn:",addr)
    while True:
        data = conn.recv(1024)
        if not data:
            print("客户端已断开")
            break
        print("执行指令",data)
        cmd_res = os.popen(data.decode()).read()
        if len(cmd_res) == 0: #客户端输入错误时长度为0
            cmd_res = "cmd has no output..."
        conn.send(cmd_res.encode(utf-8))

import  socket
client = socket.socket()
client.connect((localhost,9999))

while True:
    cmd = input(">>>").strip()
    if len(cmd) == 0 :continue
    client.send(cmd.encode(utf-8))
    cmd_res = client.recv(1024)
    print(cmd_res.decode())

client.close()

 

python-socket

标签:没有   端口   utf-8   while   bind   指令   AC   数据   inpu   

原文地址:https://www.cnblogs.com/wangzihong/p/9251661.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!