本节我们实现了类似qq通讯聊天的功能,即你和好友之间可以相互发送和接受消息,为了美化,我们还增加了gui界面实现.
首先为了接受和发送消息,我们需要用socket编程,socket编程分为tcp和udp,我们在这里用tcp实现通讯.
其次,为了实现gui页面,我们用了python自带的gui图形库,即tkinter库.
我们需要分别编写客户端和服务端的代码,即要编写两套代码,不过客户端和服务端的实现细节大同小异,除了通讯方面代码略微不同,gui界面部分都是一样的,下面我们来编写代码.
服务端代码:
from tkinter import *
import socket
import sys
import threading
import time
class Server1:
def __init__(self): #初始化创建socket套接字,并且调用start1方法绘制界面
self.serv1=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.serv1.bind(('localhost',9980))
self.serv1.listen(5)
self.client,self.addr=self.serv1.accept()
self.start1()
def __del__(self): #析构函数,当程序退出时,执行该函数,主要是为了关闭创建的socket套接字
self.serv1.close()
self.client.close()
def start1(self): #界面绘制
self.init1=Tk()
self.init1.title("服务端聊天工具")