DGZ's Blog.

Socketserver学习(待填)

Word count: 411Reading time: 1 min
2020/02/28 Share

先用socket在本地起一个简单的聊天服务
服务端:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/user/bin/env python
#-*- coding:utf-8 -*-

import socket

#待bind的ip/port
ip_port = ('127.0.0.1', 9999)
#建立socket
s = socket.socket()
#绑定ip/port
s.bind(ip_port)
#监听连接
s.listen()
print('等待用户连接中... ...')
while(True):
#建立连接后,将accept()返回的元组赋值给conn, addr
conn, addr = s.accept()
if conn is not None:
print('有一个用户已连接.\n等待对方发送信息.')
while(True):
try:
recv_data = conn.recv(1024)
#显示接收的信息
print('对方发送的信息:', str(recv_data, encoding = 'utf-8'))
send_data = input('我回复>>').strip()
conn.send(bytes(send_data, encoding = 'utf-8'))
print('等待对方发送信息>>')
except Exception:
print('远程主机强迫关闭了一个现有的连接,续继等待其它的连接。')
break
conn.close()

客户端:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/user/bin/env python
#-*- coding:utf-8 -*-

import socket

#待建立连接HOST的ip/port
ip_port = ('127.0.0.1', 9999)
#建立socket
s = socket.socket()
#建立连接
s.connect(ip_port)
while(True):
#待发送的信息
send_data = input('给对方发送信息:').strip()
s.send(bytes(send_data, encoding = 'utf-8'))
print('等待对方回复:')
#接收信息并显示
recv_data = s.recv(1024)
print('你有新的消息:', str(recv_data, encoding = 'utf-8'))
s.close()

cmd中命令:
ipconfig 看ip
netstat -ano 列出所有端口的情况
netstat -aon|findstr “port” 查看端口对应的占用情况
tasklist|findstr “PID” 查看指定端口是什么程序在占用

telnet需要现在

在文件头部添加两行代码可解决Non-ASCII character ‘\xe5’ in file Apriori.py on line 1, but no encoding declared的问题:

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

CATALOG