zoukankan      html  css  js  c++  java
  • 网络编程之实现客户端与服务端聊天

    客户端代码:

    import socket
    sk = socket.socket()
    address = ('127.0.0.1',8008)
    sk.connect(address)    #连接服务端
    print('已连接')
    以上代码实现与服务端的连接。连接以后下面开始交互,必须是一收一发
    while True:
        inp = input('>>>')
        if inp == 'exit':   #如果输入exit,退出循环
            break
        elif inp == '':     #如果输入的内容为空,提醒用户,并让他重新输入
            print('不能输入空白字符')
            continue
        sk.send(bytes(inp,'utf8'))     #发送信息
        data = sk.recv(1024)         #接收信息
        print(str(data,'utf8'))
    sk.close      #关闭客户端连接

    服务端代码:

    import socket
    sk = socket.socket()   #给socket创建对象
    address = ('127.0.0.1',8008)  #设置服务端的IP地址和端口号
    sk.bind(address)    #绑定地址
    sk.listen(3)    #设置客户端请求连接的排队数量(每次只能连接一个客户端)
    注意:1.下面需要客户端连接,连接之前将在此阻塞
    2.conn接收客户端对象,addr接收客户端IP地址和端口号
    3.连接成功后,开始信息交互
     1 while True:
     2     print('waiting for connection..........')
     3     conn, addr = sk.accept()  # 在此接受客户端连接
     4     while True:
     5         try:
     6             data = str(conn.recv(1024),'utf8')      #接收客户端信息
     7             if  data != '':
     8                 print(data)
     9             else:        #如果接收到空内容,等待用户输入并重新接收
    10                 continue
    11         except Exception as e:
    12             print(e)
    13             break
    14         while True:
    15             inp = input('>>>')
    16             if inp == '':
    17                 print('不能发送空白字符')
    18                 continue
    19             conn.send(bytes(inp,'utf8'))   #收发的内容必须是bytes类型
    20             break
    21 sk.close()
    在此加一个异常处理:当客户端强制关闭连接时报出异常,并等待下一个客户端连接
    Linux下无需加异常处理,因为它会将强制关闭连接当做收到空值处理
     
     
  • 相关阅读:
    一小段代码体现出的编程艺术
    2013年:第十一届软交会今天开始
    干掉baidu地图Logo的CSS
    编程语言历史,你属于几零后?
    WebServer实现SQL数据库百度坐标转换转化的算法
    使用Nginx代理Ext.net2.0异步请求报错问题
    PostgreSQL9.3新增的json_populate_recordset函数使用问题
    坐标转换服务笔录
    关于extjs中文乱码和emptyText的问题
    百度地图Polyline画直线BUG
  • 原文地址:https://www.cnblogs.com/Finance-IT-gao/p/10584792.html
Copyright © 2011-2022 走看看