zoukankan      html  css  js  c++  java
  • python之字符聊天小工具

    server side:

    # coding: gb2312
    #socket server端
    #获取socket构造及常量
    from socket import *
    #''代表服务器为localhost
    myHost = ''
    #在一个非保留端口号上进行监听
    myPort = 50007

    #设置一个TCP socket对象
    sockobj = socket(AF_INET, SOCK_STREAM)
    #绑定它至端口号
    sockobj.bind((myHost, myPort))
    #监听,允许5个连结
    sockobj.listen(5)

    #直到进程结束时才结束循环
    while True:
        #等待下一个客户端连结
        connection, address = sockobj.accept( )
        #连结是一个新的socket
        print 'Server connected by', address
        while True:
            #读取客户端套接字的下一行
            data = connection.recv(1024)
            
            print "对方回复:", data
            
            #如果没有数据的话,那么跳出循环
            message = raw_input("QQ聊天:")
            connection.send(message)
        #当socket关闭时eof
        connection.close( )

    client side:

    # coding: gb2312
    import sys
    from socket import *
    serverHost = '192.168.159.3'
    serverPort = 50007

    #发送至服务端的默认文本
    message = ['Hello']
    #如果参数大于1的话,连结的服务端为第一个参数
    if len(sys.argv) > 1:
        serverHost = sys.argv[1]
        #如果参数大于2的话,连结的文字为第二个参数
        if len(sys.argv) > 2:
            message = sys.argv[2:]

    #建立一个tcp/ip套接字对象
    sockobj = socket(AF_INET, SOCK_STREAM)
    #连结至服务器及端口
    sockobj.connect((serverHost, serverPort))

    while True:
        message = raw_input("QQ聊天:")
        sockobj.send(message)
        #从服务端接收到的数据,上限为1k
        data = sockobj.recv(1024)
        #确认他是引用的,是'x'
        print '对方回复:', repr(data)
    #关闭套接字
    sockobj.close( )

  • 相关阅读:
    &与&&的区别
    x^y=(x&~y)|(~x&y)证明
    a、b交换与比较
    x+y = ((x&y)<<1) + (x^y) 证明
    (x&y) + ((x^y)>>1)即x和y的算数平均值
    默认参数提升
    类型转换
    闲扯原码,补码和反码(转)
    C/C++中float和double的存储结构
    led设备驱动(s3c_led.c)
  • 原文地址:https://www.cnblogs.com/milantgh/p/4394520.html
Copyright © 2011-2022 走看看