python socket编程

---恢复内容开始---

最近想练习用python写一个聊天的小程序,在使用socket的过程中遇到了种种困惑,好在一步步解决了问题。

学习socket,最开始练习了tcp的echo client 和echo server 参考了廖雪峰的python网络编程部分

tcpserver.py

 1 #usr/bin/python
 2 #-*- coding = utf-8 -*-
 3 from socket import *
 4 import threading,time
 5 
 6 HOST = '127.0.0.1'
 7 PORT = 5005
 8 BUFSIZ = 1024
 9 ADDR = (HOST,PORT) 
10     
11 def tcplink(sock,addr):
12     print 'Accept new connection from %s :%s.....' %addr
13     sock.send("Welcome")
14     while True:
15         data = sock.recv(1024)
16         time.sleep(1)
17         if data == 'exit' or not data :
18             break
19         sock.send('Hello ,%s! '% data)
20     sock.close()
21     print 'Connection from %s :%s closed ' %addr
22 
23 s = socket(AF_INET,SOCK_STREAM)
24 s.bind(ADDR)  
25 s.listen(5)
26 
27 while True:
28     print 'waiting for connection'
29     sock, addr = s.accept()
30     print 'conncting from :',addr31     t= threading.Thread(target =tcplink,args=(sock,addr)) #多线程实现
32     t.start()
33   

tcpclient.py

 1 #!usr/bin/env python 
 2 from socket import *
 3 
 4 HOST='127.0.0.1'
 5 PORT=5005
 6 BUFSIZE = 1024
 7 ADDR = (HOST,PORT)
 8 
 9 s = socket(AF_INET, SOCK_STREAM)
10 s.connect(ADDR)
11 print s.recv(1024)
12 while True:
13     data1 = raw_input('>')
14     s.send(data1)
15     if data1=='exit':
16         break
17     print s.recv(BUFSIZE)
18 s.close()

接着扩展程序 找到另一篇文章

http://www.cnblogs.com/hazir/p/python_chat_room.html

实现了一个简单的聊天程序,但是还是存在着很多问题,坑先放着以后过来添

原文地址:https://www.cnblogs.com/moonnight/p/5399557.html