- 论坛徽章:
- 0
|
本帖最后由 rader107 于 2016-11-20 22:40 编辑
一个简单的socket server程序,如果用xinetd来管理,xinetd默认会侦听一个端口,在收到请求后启动server程序,server程序也需要侦听那个端口吗?我照着《python网络编程》里的例子试了一下,如果server程序中写上 bind((host,port)),就会提示端口被占用,可是注掉这行,就会出现服务端无响应的情况,请大家指点一下
- #!/usr/bin/python
- import socket
- host = ''
- port = 51423
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- #s.bind((host, port))
- s.listen(1)
- print "Server is running on port %d: press Ctrl_C to terminate." %port
- while 1:
- clientsock, clientaddr = s.accept()
- clientfile = clientsock.makefile('rw',0)
- clientfile.write("Welcome, " + str(clientaddr) + "\n")
- clientfile.write("Please enter a string: ")
- line = clientfile.readline().strip()
- clientfile.write("You entered %d characters.\n" % len(line))
- clientfile.close()
- clientsock.close()
复制代码
|
|