首页 > 解决方案 > 无法让 Socket 接收数据包

问题描述

我正在尝试使用套接字将消息从客户端发送到服务器。由于某种原因,没有收到该消息。示例:客户端发送“myname_0”,服务器需要接收它并对其进行解码并继续。

听众:

import socket

class SocketSender():
    def __init__(self):
        self.sock = socket.socket()
        ip = socket.gethostname()  # IP to server.
        port = 7000
        self.sock.bind((ip, port))
        print("Binding successful.")
        self.sock.listen(2)
        print("Listening....")
    self.listening = True
    # self.sock.connect((ip, port))
    # print("Connected.")


def sendpacket(self, packet):
    self.sock.send(packet.encode())

def receivepacket(self):
    while self.listening:
        con, addr = self.sock.accept()
        print("Receiving packet from " + str(addr))

        packet = self.sock.recv(1024).decode("utf-8")
        return str(packet)

发件人:

import socket

sock = socket.socket()
ip = socket.gethostname()
port = 7000

sock.connect((ip, port))
print("connection to " + ip)
message = "test_0"
sock.send(message.encode("utf-8"))

运行时:

import GUI
import SocketSender

# Entry: 0, Exit: 1
gui = GUI.ASGui()

# gui.run()
socket = SocketSender.SocketSender()

id = input()

while 1 == 1:
    packet = socket.receivepacket()
    name, state = packet.split("_")
    break

if state == 0:
    print("Welcome back, " + name)
else:
    if state == 1:
        print("Goodbye, " + name)

我确实得到了输出侦听和绑定。但我无法收到消息。帮助将不胜感激。谢谢你。

标签: python

解决方案


推荐阅读