博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
聊天室
阅读量:6906 次
发布时间:2019-06-27

本文共 2557 字,大约阅读时间需要 8 分钟。

客户端代码:

# Filename: socketClient.py    import socket  import sys  import threading    # Client GUI  from tkinter import *  import Pmw        # Create a TCP/IP socket  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # Connect the socket to the port where the server is listening  server_address = ('localhost', 10000)  print (sys.stderr, 'connecting to %s port %s' % server_address)  sock.connect(server_address)    root = Tk()  # textDisplay    textDisplay = Pmw.ScrolledText(root)    textDisplay.pack(expand=1, padx=5, pady=5,side = LEFT)    # textInput  textInput = Pmw.ScrolledText(root)    textInput.pack(expand=1, padx=5, pady=5,side = LEFT)  # Send Button and its callback    def sendMsg(event):      message = socket.gethostname()+':'+ textInput.get()      #print (sys.stderr, 'sending "%s"' % message)      print(message)      sock.sendall(message.encode())      textInput.clear()      #data = sock.recv(100)      #textDisplay.insert(END, data)      #print (sys.stderr, 'received "%s"' % data)        sendBtn = Button(root, text="Send")    sendBtn.bind('
', sendMsg) sendBtn.pack(side = LEFT) def receiveMsg(): while True: data = sock.recv(100) print (sys.stderr, 'client received "%s"' % data) textDisplay.insert(END, data) receiveThread = threading.Thread(name='waitForMSG', target=receiveMsg) receiveThread.start() root.mainloop()

服务器端代码:

# Filename: socketServer.py    import socket  import sys    # Create a TCP/IP socket  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    # Bind the socket to the port  server_address = ('localhost', 10000)  print (sys.stderr, 'starting up on %s port %s' % server_address)  sock.bind(server_address)    # Listen for incoming connections  sock.listen(1)    while True:      # Wait for a connection      print (sys.stderr, 'waiting for a connection')      connection, client_address = sock.accept()        try:          print (sys.stderr, 'connection from', client_address)            # Receive the data in small chunks and retransmit it          while True:              data = connection.recv(16)              print (sys.stderr, 'received "%s"' % data)              if data:                  print (sys.stderr, 'sending data back to the client')                  connection.sendall(data)              else:                  print (sys.stderr, 'no data from', client_address)                  break      finally:          # Clean up the connection          connection.close()

 

转载于:https://www.cnblogs.com/wumac/p/5899924.html

你可能感兴趣的文章
Win10无法启动软件提示MSVCP110.dll丢失
查看>>
面向切面和面向对象的关系
查看>>
hdu 2032 杨辉三角
查看>>
Centos7安装python3和pip3
查看>>
spring集合类型注入
查看>>
EnumMap 两种使用方式的比较
查看>>
smarty课程---smarty3的安装和使用
查看>>
m_Orchestrate learning system---mo系统权限思考(如何实现以及注意什么)
查看>>
Dcloud课程8 开心一刻应用如何实现
查看>>
html5--2.9新的布局元素(5)-hgroup/address
查看>>
jar包和war包的介绍和区别
查看>>
jQuery.获取过滤点
查看>>
64位Windows系统下32位应用程序连接MySql
查看>>
js 类似发微博或者微信朋友圈的时间显示 刚刚 几天前
查看>>
Oracle10gr2 开机自启动脚本
查看>>
netty websocket
查看>>
SpringMVC单文件上传、多文件上传、文件列表显示、文件下载
查看>>
sql server T-SQL 基础
查看>>
private static
查看>>
Java面试不得不知的程序(二)
查看>>