python 写了一个简单的服务端和一个客户端,连接可以成功,但是发送数据时,服务端每次都报错“在一个非套接字上尝试了一个操作”,然后停止运行了。
************************
服务端:
import sys
from _thread import *
HOST = ''
PORT = 8888
s = socket(AF_INET, SOCK_STREAM)
print('Socket created')
try:
s.bind((HOST, PORT))
print('Socket bind complete')
except socket.error as msg:
print('Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1])
sys.exit()
s.listen(5)
print('Socket now listening')
while True:
conn, addr = s.accept()
print('Connected with ' + addr[0] + ':' + str(addr[1]))
conn.send(b"Welcome to the server.\n")
while True:
data = conn.recv(1024)
reply = b'OK...' + data
if len(data) == 0:
continue
conn.sendall(reply)
conn.close()
conn.close()
s.close()
********************
客户端:
********************
from socket import *
ip_port = ('192.168.1.95', 3600)
BUFSIZE = 1024
sk = socket(AF_INET, SOCK_STREAM)
sk.connect(ip_port)
while True:
msg = input('>>:').strip()
if len(msg) == 0: continue
sk.send(msg.encode('utf-8'))
feedback = sk.recv(BUFSIZE)
print(feedback.decode('utf-8'))
s.close()
************************
服务端:
import sys
from _thread import *
HOST = ''
PORT = 8888
s = socket(AF_INET, SOCK_STREAM)
print('Socket created')
try:
s.bind((HOST, PORT))
print('Socket bind complete')
except socket.error as msg:
print('Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1])
sys.exit()
s.listen(5)
print('Socket now listening')
while True:
conn, addr = s.accept()
print('Connected with ' + addr[0] + ':' + str(addr[1]))
conn.send(b"Welcome to the server.\n")
while True:
data = conn.recv(1024)
reply = b'OK...' + data
if len(data) == 0:
continue
conn.sendall(reply)
conn.close()
conn.close()
s.close()
********************
客户端:
********************
from socket import *
ip_port = ('192.168.1.95', 3600)
BUFSIZE = 1024
sk = socket(AF_INET, SOCK_STREAM)
sk.connect(ip_port)
while True:
msg = input('>>:').strip()
if len(msg) == 0: continue
sk.send(msg.encode('utf-8'))
feedback = sk.recv(BUFSIZE)
print(feedback.decode('utf-8'))
s.close()