码迷,mamicode.com
首页 > 编程语言 > 详细

python 学习总结3

时间:2017-10-27 13:25:26      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:开始   bind   条件   监听   bsp   调试   ufs   服务端   pytho   

今天学习了socket的一些知识,主要为socket模块中socket()类及其父类的一些方法

只要包括:

sock=socket.socket()

sk.bind(address)  #绑定自己的套接字信息

sk.listen([backlog]) #保持监听,直到有连接信息

sk.accept() #接收连接,并返回(socket object, address info)信息
sk.connect(address) #根据套接字信息连接对方的套接字

sk.sendall(string) #向对方发送信息,但必须为字节

sk.recv(bufsize) #接收对方的信息

sk.close() #关闭套接字

  

根据以上方法,我写了一个聊天小程序,如下

服务端

import socket

sock=socket.socket()
sock.bind((‘127.0.0.1‘,8001))

#保持监听
sock.listen(5)
while 1:
    #等待对方的连接
    con,address=sock.accept()

    #连接成功后向对方发送请求信息
    con.sendall(bytes(‘对方已在线,请输入信息,当输入q时断开连接‘,encoding=‘utf-8‘))

    #开始聊天
    while 1:

        #接收信息
        ming=con.recv(1024)
        xiao_ming=str(ming,encoding=‘utf-8‘)

        #对方断开连接
        if xiao_ming==‘q‘:
            print(‘对方(小明)已断开连接‘)
            break

        print(‘小明(对方):‘+xiao_ming)

        #发送信息
        hong=input(‘小红(你)  :‘)
        con.sendall(bytes(hong,encoding=‘utf-8‘))

客户端

import socket
soc=socket.socket()

#根据地址信息连接对方
soc.connect((‘127.0.0.1‘,8001))

#接收对方的请求信息
mas=soc.recv(1024)
massage=str(mas,encoding=‘utf-8‘)
print(massage)

#开始聊天
while 1:
    #发送信息
    ming=input(‘小明(你)  :‘)
    soc.sendall(bytes(ming,encoding=‘utf-8‘))

    #断开连接条件
    if ming==‘q‘:
        print(‘你已断开连接,若想发送信息请重新连接‘)
        break

    #接收信息
    hon=soc.recv(1024)
    hong=str(hon,encoding=‘utf-8‘)
    print(‘小红(对方):‘+hong)

soc.close()

  在调试过程中,发现自己与自己对话真是一种奇妙与悲哀的感觉

 

python 学习总结3

标签:开始   bind   条件   监听   bsp   调试   ufs   服务端   pytho   

原文地址:http://www.cnblogs.com/xiaolong1989/p/7742293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!