首页 > 代码库 > 一个简单的服务器操作

一个简单的服务器操作

cat one.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import socket

host = ‘‘        #主机设为空,程序就可以接收来自任何客户端的连接
port = 51423     #设置端口,选择一个任意大于1024的端口即可

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #创建socket对象,
#s = socket.socket()    可以采用默认的对象
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) #把socket设置成可复用的
s.bind((host, port))         #调用bind函数
s.listen(5)              #调用listen函数,等待客户端连接,每一次最多只有一个等待处理的连接

while True:             #主循环
    clientsock, clientaddr = s.accept() #调用accept函数,返回两个值,一个新的连接客户端,另一个时客户端的ip的port
    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()                      #使用文件类对象的时候,必须关闭文件对象和socket对象。关闭socket对象很重要否则客户端不知道服务器通信已经结束,而在服务器上会堆积很多的连接。
    clientsock.close()

然后再服务器端运行这个脚本文件:

[root@slave one]# python one.py &
[1] 3273

然后再客户端利用telnet连接服务器:

[root@master socket]# telnet 192.168.1.121 51423
Trying 192.168.1.121...
Connected to 192.168.1.121.
Escape character is ‘^]‘.
Welcome, (‘192.168.1.120‘, 40157)
Please enter a string: hello  //输入的时“Hello”
you entered 5 characters. 
Connection closed by foreign host.


本文出自 “自定义” 博客,谢绝转载!

一个简单的服务器操作