首页 > 编程 > Python > 正文

Python一个简单的通信程序(客户端 服务器)

2020-01-04 13:35:31
字体:
来源:转载
供稿:网友

功能是从客户端向服务发送一个字符串, 服务器收到后将字符串重新发送给客户端,同时,在连接建立之后,服务器可以向客户端发送任意多的字符串

客户端:

10.248.27.23是我电脑的IP

import socket, syshost = '10.248.27.23'# host = raw_input("Plz imput destination IP:")# data = raw_input("Plz imput what you want to submit:")port = 51423s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)try:  s.connect((host, port))except socket.gaierror, e:  print "Address-related error connecting to server: %s" %e  sys.exit(1)except socket.error, e:  print "Connection error: %s" %e  sys.exit(1)data = raw_input("Plz imput what you want to submit:")s.send(data)s.shutdown(1)print "Submit Complete"while 1:    buf = s.recv(1024)    sys.stdout.write(buf)

服务器:

import socket, tracebackhost = ''port = 51423s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)s.bind((host, port))s.listen(1)print "done"while 1:  #when connect error happen, skip the error  try:    ClientSock, ClientAddr = s.accept()  except KeyboardInterrupt:    raise  except:    traceback.print_exc()    continue  #Get informaion form client and reply  try:    print "Get connect from ", ClientSock.getpeername()    data = ClientSock.recv(1024)    print "The information we get is %s" % str(data)    ClientSock.sendall("I`ve got the information: ")    ClientSock.sendall(data)    while 1:      str = raw_input("What you want to say:")      ClientSock.sendall(str)      ClientSock.sendall('/n')  except (KeyboardInterrupt ,SystemError):    raise  except:    traceback.print_exc()  #Clocs socket  try:    ClientSock.close()  except KeyboardInterrupt:    raise  except:    traceback.print_exc()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对VEVB武林网的支持。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表