客户端:
import socket
import time
import os
def start_socket_client(alternate_ip,nport):
tcpCliSock=None
Addr = (alternate_ip,nport)
timeout = 15
#setdefaulttimeout(timeout)#这里对整个socket层设置超时时间。
try:
tcpCliSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error as e:
print("Strange error creating socket: %s" % e)
return None
try:
tcpCliSock.connect(Addr)
except socket.gaierror as e:
print("connecting to server: %s" % e)
return None
except socket.error as e:
print("Connection error: %s" % e)
return None
now_deal_cmd_string = ""
while(True):
now_deal_cmd_string = “client test msg”
tcpCliSock.sendall(now_deal_cmd_string .encode("ascii"))
time.sleep(3)
tcpCliSock.close()
if __name__ == '__main__':
start_socket_client("192.168.6.66",9527)
服务器:
import threading
import socket
import time
def send_to_client(conn, addr,cmd):
try:
conn.sendall(cmd.encode("ascii"))
except socket.error as e:
print("send_to_client error:",e)
def deal_data(conn, addr):
print('enter deal_data {0}'.format(addr))
conn.settimeout(30)
now_deal_cmd_string = ""
while True:
try:
data = conn.recv(10240)
except socket.timeout:
print("deal_data socket.timeout")
continue
except socket.error as e:
print("deal_data try except conn.recv error:",e)
break
if not data:
print("deal_data conn.recv not data ")
break
now_deal_cmd_string += data.decode("ascii")
print("all recv:",now_deal_cmd_string )
try:
conn.close()
except:
pass
print('leave deal_data {0}'.format(addr))
def start_socket_server():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('0.0.0.0', 9527))
s.listen(100)
except socket.error as msg:
print("start_socket_server error:",msg)
return
print('start_socket_server Waiting connection...')
while 1:
try:
conn, addr = s.accept()
t = threading.Thread(target=deal_data, args=(conn, addr))
#t = multiprocessing.Process(target=deal_data, args=(conn, addr))
t.start()
except socket.error as msg:
print("start_socket_server accept error:",msg)
if __name__ == '__main__':
start_socket_server()
浙公网安备 33010602011771号