python tcp

python tcp

http://www.binarytides.com/python-socket-programming-tutorial/
https://www.jianshu.com/p/e062b3dd110c
https://www.liaoxuefeng.com

server.py

'''
open socket
bind (add,port)
listen for incoming connections
accept connections
receive/send

Accept a connection. The socket must be bound to an address and listening for connections.
The return value can be either None or a pair (conn, address)
where conn is a new socket object usable to send and receive data on the connection,
and address is the address bound to the socket on the other end of the connection.
'''
import socket
import sys
import threading
import time

host='127.0.0.1'
port=9999

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print('server socket created')

try:
    s.bind((host,port))
except socket.error:
    print('bind failed')
    sys.exit()
print('bind complete')

#listen
s.listen(10)
print('start listen...')


def tcplink(sock, addr):
    print('accept new connection {0}:{1}'.format(addr[0],str(addr[1])))
    #send message to connected client
    sock.send(b'welcome to server!')
    while True:
        #receive btye
        data=sock.recv(1024)
        msg='hello '+data.decode('utf-8')
        #time.sleep(1)
        if not data:
            break
        sock.sendall(msg.encode('utf-8'))
    sock.close()
    print('conection from {0}:{1} closed'.format(addr[0],addr[1]))

while True:
    #accept new connection
    sock,addr=s.accept()
    t=threading.Thread(target=tcplink,args=(sock,addr))
    t.start()

client.py

import socket
import sys

host='localhost'
port=9999

try:

    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
except socket.error:
    print('socket create failed')
    sys.exit()

s.connect((host,port))
print(s.recv(1024).decode('utf-8'))

while True:
    data=input('please input some string\n')
    if not data or data=='exit':
        break

    s.sendall(str(data).encode('utf-8'))
    ret=s.recv(1024)
    print(ret.decode('utf-8'))
s.close()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Socket Socket是网络编程的一个抽象概念。通常我们用一个Socket表示“打开了一个网络链接”,而打开一...
    玩阿轲睡妲己阅读 1,006评论 0 3
  • TCP编程 在python中可以使用socket模块进行TCP编程 客户端 创建一个套接字socket 指定协议类...
    放风筝的小小马阅读 336评论 0 1
  • 奥尔滨ALBION独创的渗透乳的美容理论,真正实现了具有“透明感和柔韧性”的肌肤,从最初的5种产品发展到现在100...
    懋海阅读 180评论 0 0
  • 国庆的时候和男朋有说了分手 同时在微博又更新了一篇关于你的微博 如果不是家庭问题的悬殊 我会选择毫不犹豫的追求你 ...
    8dbfd81d8788阅读 159评论 0 0
  • 昨天原本计划开车回金昌的也因为儿子的抗拒泡汤了。一整天我的情绪都很低落、而我也没有心情胃口吃饭、所以、也惩...
    梅燕霓阅读 195评论 0 3