2011年12月05日 星期一 17:02
现在用socket想做一个简单的网络程序,实现server和client之间的通信,连接后,client向server发送消息,server返回相应的信息,我的代码入下:
服务器端:
#!/usr/bin/env python
#File:server.py
import socket
if __name__ == "__main__":
s = socket.socket()
address=('localhost',12345)
s.bind(address)
s.listen(5)
while True:
c, addr = s.accept()
print 'Got connection from',addr
c.send('connect successful with server')
word=c.recv(1025)
c.send(word+' too')
c.close()
---------------------------------------------------------
客户端:
#!/usr/bin/env python
#client.py
import socket
if __name__ == "__main__":
s = socket.socket()
address=('127.0.0.1',12345)
s.connect(address)
print s.recv(1024)
while(True):
word=raw_input('>>')
if not word:
continue
else:
s.send(word)
print s.recv(1027)
s.close()
我现在的情况是,client第一次发送消息,服务器可以正常返回,第二次发送消息,client就报错退出了,报错如下:
Traceback (most recent call last):
File "./client.py", line 17, in <module>
s.send(word)
File "/usr/local/lib/python2.6/socket.py", line 165, in _dummy
raise error(EBADF, 'Bad file descriptor')
socket.error: [Errno 9] Bad file descriptor
希望大家给个指点,提示一下也行啊,谢谢了
2011年12月06日 星期二 14:06
s.close()
2011年12月08日 星期四 21:31
程序需要退出,退出时才关闭socket
while 1 :
word=raw_input('>>')
if word=='q' or word=='quit':
s.close()
else:
s.send(word)
print s.recv(1027)
Zeuux © 2024
京ICP备05028076号