Python socket实现服务器端与客户端连接

Python socket实现服务器端与客户端连接

服务器端与客户端每个5秒钟通信一次,具体实现如下:

服务器端代码

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:server.py
 
import socket               # 导入 socket 模块
import time

s = socket.socket()         # 创建 socket 对象
host = socket.gethostname() # 获取本地主机名
host='10.276.58.231'
port = 8080                # 设置端口
s.bind((host, port))        # 绑定端口
s.listen(5)                 # 等待客户端连接
while True:                  #新增接收链接循环,conn就是客户端链接过来而在服务端为期生成的一个链接实例
    conn,addr=s.accept()    #被动接受TCP客户端连接,(阻塞式)等待连接的到来,等待链接,多个链接的时候就会出现问题,其实返回了两个值
    print('连接地址:', addr)
    print('conn', conn)
    while True:
        try:
            data="server"
            conn.sendall(bytes(data,encoding="utf-8"))
            data=conn.recv(1024)
            print(str(data,encoding="utf-8"))
            
            while True:                 #新增通信循环,可以不断的通信,收发消息
                a = 0
            # count = 0
                while True:  
                    # count+=1
                    time.sleep(5)   #睡眠5秒
                    a+=1
                    keepclass = "Server->与服务器端已连接"+str(a*5)+"秒,发送时间:"+time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
                    # time.sleep(1)
                    conn.send(bytes(keepclass,'UTF-8'))  #发送消息
                    msg=conn.recv(1024*2)
                    msg.decode('utf-8')
                    print(str(msg.decode('utf-8')))
       
        except Exception as e:
           
            print(e)
            break
        conn.close()                #关闭连接  
c.close()                # 关闭连接

客户端代码

#import socket module as socket
import socket
import sys
ip_port=('10.276.58.231',8080)
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(ip_port)           #连接服务器端

while True:                            #新增通信循环,客户端可以不断发收消息
     msg='wo shi kehuduan xingtiao'
     s.send(msg.encode('utf-8'))         #发送消息(只能发送字节类型)
     a=s.recv(1024)                           #接收消息
     sys.stderr.write('Client:' +str(a.decode('utf-8')) + '\n')
s.close()                                       #socket关闭

实现效果:
服务器端效果:
Python socket实现服务器端与客户端连接_第1张图片
客户端实现效果:
Python socket实现服务器端与客户端连接_第2张图片

你可能感兴趣的:(python,socket)