socket question

张少驰 zhangsc at neusoft.com
Thu Dec 13 21:21:33 EST 2001


I encountered a question,when I deal with UDP socket connection,my programs existed.I have two programs,one is server.py,another is client.py ,I run them in two computers,server.py is at 10.1.1.27,client is at 10.1.1.67 ,my programs are follows:

server.py #It works at IP address of 10.1.1.27

....
#I get udpaddr from IP header of 32bit source ip address,
#and I get udpdata[0] from UDP header of 16bit source port number.
 addr=udpaddr,udpdata[0]
 print type(addr)
 print addr 
#for some program design reason,I can't use data,addr=udpSerSock.recvfrom(BUFSIZ) to get addr
 udpSerSock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
 udpSerSock.sendto(data,addr)
 udpSerSock.close() 

client.py #It works at IP address of 10.1.1.67

from socket import *
import string
HOST='10.1.1.27'
PORT=21567
BUFSIZ=1024
ADDR=(HOST,PORT)
udpCliSock=socket(AF_INET,SOCK_DGRAM)
data=raw_input('>')
udpCliSock.sendto(data,ADDR)
print udpCliSock.getsockname()
data, addr = udpCliSock.recvfrom(BUFSIZ)
if data:
  print data
udpCliSock.close()

First,I run server.py at 10.1.1.27
$python server.py

Then I run client.py at 10.1.1.67
$python client.py
>hello

The running result of server.py:
<type 'tuple'>
('10.1.1.67', 1165)
$

The running result of client.py,it raise a error:
('0.0.0.0', 1165)
Traceback (most recent call last):
  File "client.py", line 11, in ?
    data, addr = udpCliSock.recvfrom(BUFSIZ)
socket.error: (104, 'Connection reset by peer')

I know that my server.py don't use normal way to return data to client.py ,but I need this way! How to correct my programs? Any ideas will be appreciated!
      Thanks.
               Edward               
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20011214/029504b0/attachment.html>


More information about the Python-list mailing list