网络地址转换不仅仅是IP地址,是IP地址和端口号组合的转换
(IP1,PORT1) => (IP2,PORT2)
server.py
import sys
import socket
HOST=''
PORT=8888
cnt=0
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
print 'Socket created'
try:
s.bind((HOST,PORT))
except socket.error as msg:
print 'Bind failed. Error Code : ' + str(msg[0]) + msg[1]
sys.exit()
print 'Socket bind complete'
s.listen(10)
print 'Socket now listening'
while True:
conn, addr = s.accept()
cnt = cnt + 1;
print str(cnt) + ' : Connect with ' + addr[0] + ':' + str(addr[1])
#conn.close()
s.close()
client.py
import sys
import socket
HOST=sys.argv[1]
PORT=int(sys.argv[2])
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('',9999))
s.connect((HOST,PORT))
addr,port=s.getsockname()
print 'local address %s:%d' %(addr,port)
addr,port=s.getpeername()
print 'remote address %s:%d' %(addr,port)
print 'press Enter to return'
sys.stdin.readline()
s.close()