contro opinion
2015-01-10 08:12:36 UTC
When i test an udp.py file on server and client in python34.
#!/usr/bin/env python
import socket, sys
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
MAX = 65535
PORT = 1060
if sys.argv[1:] == ['server']:
s.bind(('127.0.0.1', PORT))
print('Listening at', s.getsockname())
while True:
data, address = s.recvfrom(MAX)
print('The client at', address, 'says', repr(data))
s.sendto('Your data was %d bytes' % len(data), address)
elif sys.argv[1:] == ['client']:
print('Address before sending:',s.getsockname())
s.sendto('This is my message',('127.0.0.1', PORT))
print('Address after sending',s.getsockname())
data, address = s.recvfrom(MAX)
print('The server', address, 'says', repr(data))
else:
print('usage: udp_local.py server|client')
The command `python udp.py server` get output:
Listening at ('127.0.0.1', 1060)
Why `python udp.py client` run failure:
Traceback (most recent call last):
File "d://udp.py", line 15, in <module>
print('Address before sending:', s.getsockname())
OSError: [WinError 10022] An invalid argument was supplied
#!/usr/bin/env python
import socket, sys
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
MAX = 65535
PORT = 1060
if sys.argv[1:] == ['server']:
s.bind(('127.0.0.1', PORT))
print('Listening at', s.getsockname())
while True:
data, address = s.recvfrom(MAX)
print('The client at', address, 'says', repr(data))
s.sendto('Your data was %d bytes' % len(data), address)
elif sys.argv[1:] == ['client']:
print('Address before sending:',s.getsockname())
s.sendto('This is my message',('127.0.0.1', PORT))
print('Address after sending',s.getsockname())
data, address = s.recvfrom(MAX)
print('The server', address, 'says', repr(data))
else:
print('usage: udp_local.py server|client')
The command `python udp.py server` get output:
Listening at ('127.0.0.1', 1060)
Why `python udp.py client` run failure:
Traceback (most recent call last):
File "d://udp.py", line 15, in <module>
print('Address before sending:', s.getsockname())
OSError: [WinError 10022] An invalid argument was supplied