Python 用tcp协议进行socket编程

来源:互联网 发布:spark时间序列算法 编辑:程序博客网 时间:2024/06/08 05:01

客户端:

#!\usr\bin\python
# coding=utf-8

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #使用ipv4 和 tcp协议
#建立连接
s.connect(('127.0.0.1', 7774)) #此处的端口最好大于1024,小于1024的要管理员权限才可以使用
#接收欢迎消息
print s.recv(1024) #每次最多接收1000字节,在此处接收服务器端发来的数据
for data in ['a', 'b', 'c']:#发送数据
    s.send(data)
    print s.recv(1024)
s.send('exit')
s.close()


服务器端:

#!\usr\bin\python
# coding=utf-8


import socket
import threading
import time
#使用ipv4 和 tcp协议
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)


s.bind(('127.0.0.1', 7774)) #在这里容易出现错误,端口号要与客户端的端口号一致,否则会报错
s.listen(5)#传入的参数指定等待的最大数量
print 'waiting for connection'


def tcplink(sock, addr):
    print 'Accept new connection from %s:%s ...' % addr
    sock.send('welcome')
    while True:
        data = sock.recv(1024)
        time.sleep(1)
        if data == 'exit' or not data:
            break
        sock.send('hello,%s' %data) #注意此处
    sock.close()
    print 'connectinon from %s:%s closed' % addr


while True:
    #接受一个新的连接
    sock, addr = s.accept()
    #创建新的线程来处理tcp连接
    t = threading.Thread(target=tcplink, args=(sock, addr))
    t.start()


使用两个命令窗口运行:

服务器端输出:

waiting for connection
Accept new connection from 127.0.0.1:61876 ...
connectinon from 127.0.0.1:61876 closed

客户端输出:

welcome

hello,a

hello,b

hello,c

 













原创粉丝点击