Tôi có một máy chủ UDP đơn giản thực hiện trong python:Python ổ cắm hoạt động trên mạng LAN nhưng không thông qua Wifi
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(("",10005))
while True:
data = sock.recv(1024)
tôi chạy mã này trên máy tính A. tôi gửi UDP lệnh từ máy tính B ở hai tình huống này:
- Cả A và B được kết nối với bộ định tuyến trong mạng cục bộ qua cáp LAN.
- Cả A và B đều được kết nối với bộ định tuyến qua Wifi.
Các gói UDP được nhận trong situaltion 1 (LAN Cable) nhưng không phải trong tình huống 2 (qua Wifi). Trong cả hai trường hợp, Wireshark hiển thị gói nhận được trên máy tính A. Bất kỳ suy nghĩ nào?
OS: Windows
Chương trình khách hàng:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(char,("192.168.1.107",10005))
sock.close()
tôi đã đến gần với việc tìm kiếm giải pháp. Windows đang thả các gói UDP. Tôi đã kiểm tra với lệnh netstat -s -p UDP
. Bất cứ khi nào máy gửi sẽ gửi các gói UDP, thì lỗi Nhận lỗi tăng lên. Bây giờ tôi chỉ cần tìm ra lý do tại sao các gói tin đang được nhận sai.
Chỉnh sửa Tôi đã thử nghiệm trên các máy tính khác. Nó hoạt động. Tôi đã chuyển đổi của tường lửa trên máy tính, nơi nó không hoạt động nhưng vẫn không thể tìm ra những gì được lọc ra các gói UDP.
Chương trình khách hàng là gì và bạn đang sử dụng phiên bản Windows nào? – rlms
Windows 7. Chương trình Giản Khách hàng sử dụng: nhập khẩu ổ cắm vớ = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) sock.sendto (char, ("192.168.1.107", 10005)) sock.close () – user3098466
Bạn có thể chạy 'netstat -r' và hiển thị đầu ra ở đây không. –