python实现socket客户端与服务端

本文详细介绍了如何在Python中使用socket进行服务端的多端通信,包括设置服务器端口和IP、处理多个客户端连接、数据接收与保存至log文件,以及客户端的连接和发送。
摘要由CSDN通过智能技术生成

相信大家都知道,socket作为传输协议十分的常用,在代码中经常需要多端通信,那socket的使用就十分的重要.

9853125867044e21bf69fe185b1c4c60.jpeg

代码请翻到最后


服务端

服务端是重要的socket组成

服务器端口与ip

import socket
import os
import threading

host = '0.0.0.0'
port = 8866
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen()

端口与ip是socket连接的必要参数。

在服务端,ip是接受方式,比如127.0.0.1,就是仅仅接受自己本身带来的访问,在http协议中一样通用,而想要别人都能够访问,那就需要把ip改为0.0.0.0,以此来接受所有的访问

port端口就是指你想要在哪里公开你的信息,建议选择3000以上,10000以下的端口,防止与电脑自带服务冲突

请注意,不要试图关闭任何一个端口来打开你喜欢的端口,这会很恐怖!!!!

服务器数据保存

        data = client_socket.recv(1024).decode()
        if not data:
            print(f'客户端 {client_address} 断开连接')
            client_sockets.remove(client_socket)
            client_socket.close()
            break
        print(f'接收到来自客户端 {client_address} 的数据:', data)
        with open(os.path.join('log', f'{client_address}.txt'), 'a') as file:
            file.write(data + '\n')

服务器接受到数据后一般会保存到一个文件中,而保存的常用方式是log文件,但是这里为了方便,创建了log文件夹,把各个ip的txt文件保存在下面

服务器实现多个socket连接

while True:
    client_socket, client_address = server_socket.accept()
    print(f'与客户端 {client_address} 连接成功')
    client_sockets.append(client_socket)
    threading.Thread(target=handle_client, args=(client_socket, client_address)).start()

服务器想要有多个socket客户端链接上来,就需要使用thread来为每个访问的客户创建线程以实现多个访问同时进行


客户端

客户端实现连接与发送

不建议实践,在此放上github地址,下载后双击exe,输入ip和port就可以连接上socket服务器,并且实现模拟访问

socket连接服务器 github项目

点击上面的文字前往下载

服务端代码

点击上面的文字前往下载

 

加群参与游戏开发与讨论 (二维码在我之后的blog)

 

 

 

 

 

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值