windows python socket 练习

python27

1、servertest.py

#!/usr/bin/python
# -*- coding: utf-8 -*-

这两行在命令行执行时必须有,否则会报错

http://python.org/dev/peps/pep-0263/ 具体错误见此解释

#!/usr/bin/python
# -*- coding: utf-8 -*-
import socket
import sys

#简单的服务器实例
#创建socket对象
import socket

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#获取本地主机名
host = socket.gethostname()
port=9998
#绑定端口号
serversocket.bind((host,port))
#限制连接数
serversocket.listen(5)

while True:
    clientsocket,addr=serversocket.accept()
    prtstr="连接地址"+ str(addr)
    print( prtstr.decode('utf-8').encode('utf-8'))
    msg="hello, you are goodman!"+"\r\n"
    clientsocket.send(msg.encode('utf-8'))
    clientsocket.close()
serversocket.close()

执行完后记得关闭,否则下次再执行会报错

这是因为 端口被占用了,换个端口,或者把之前的kill掉

2、clienttest.py (客户端连接的端口要和服务端启动的端口一致,这样客户端发送时,服务端才能接收到)

#!/usr/bin/python
# -*- coding: utf-8 -*-

# 导入 socket、sys 模块
import socket
import sys

# 创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 获取本地主机名
host= socket.gethostname()

# 设置端口号
port = 9998

# 连接服务,指定主机和端口
s.connect((host, port))

# 接收小于 1024 字节的数据
msg = s.recv(1024)
print (msg.decode('utf-8'))
s.close()

3、在windows下运行

cmd 命令,到py文件的路径。

然后分别两个窗口,一个server ,一个client 执行,server先执行

python servertest.py

python clientFile.py

客户端窗口:

服务端窗口接收到客户端消息后(等待下一次客户端请求)

猜你喜欢

转载自blog.csdn.net/mumuqingwei/article/details/81780875