1、
# coding : UTF-8
import socket
SERVER_HOST = "localhost" # 127.0.0.1(本机IP)
SERVER_PORT = 8080 # 服务绑定端口
def main(): # 主函数
# socket网络服务在每一次处理完成之后一定要使用close()方法进行关闭,所以可以利用with结构来进行定义
with socket.socket() as server_socket: # 创建了一个服务端的Socket
server_socket.bind((SERVER_HOST, SERVER_PORT)) # 绑定本机的8080端口
server_socket.listen() # 开启监听
print("【服务端】服务器启动完毕,在“%s”端口上监听,等待客户端连接 ...." % SERVER_PORT)
# 当有客户端连接之后,那么会解除当前的阻塞状态,同时也可以获得客户端的Socket和地址
client_conn, address = server_socket.accept() # 进入到阻塞状态
with client_conn: # 进行客户端的处理
print("【服务端】客户端连接到服务器端,客户端的地址为:%s、连接端口:%s" % address)
client_conn.send("沐言优拓:www.yootk.com".encode("UTF-8")) # 向客户端进行请求响应
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
2、telnet localhost 8080
3、
# coding : UTF-8
import socket
SERVER_HOST = "127.0.0.1" # 网络服务器的主机名称或IP地址
SERVER_PORT = 8080 # 服务器连接端口
def main(): # 主函数
with socket.socket() as client_socket: # 建立客户端Socket
client_socket.connect((SERVER_HOST, SERVER_PORT)) # 连接服务端
print("服务器端响应数据:%s" % client_socket.recv(30).decode("UTF-8"))
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
4、
echo 沐言优拓:www.yootk.com
5、
# coding : UTF-8
import socket
SERVER_HOST = "localhost" # 127.0.0.1(本机IP)
SERVER_PORT = 8080 # 服务绑定端口
def main(): # 主函数
# socket网络服务在每一次处理完成之后一定要使用close()方法进行关闭,所以可以利用with结构来进行定义
with socket.socket() as server_socket: # 创建了一个服务端的Socket
server_socket.bind((SERVER_HOST, SERVER_PORT)) # 绑定本机的8080端口
server_socket.listen() # 开启监听
print("【服务端】服务器启动完毕,在“%s”端口上监听,等待客户端连接 ...." % SERVER_PORT)
# 当有客户端连接之后,那么会解除当前的阻塞状态,同时也可以获得客户端的Socket和地址
client_conn, address = server_socket.accept() # 进入到阻塞状态
with client_conn: # 进行客户端的处理
print("【服务端】客户端连接到服务器端,客户端的地址为:%s、连接端口:%s" % address)
while True: # 不断的进行信息的接收与响应
data = client_conn.recv(100).decode("UTF-8") # 接收客户端发送来的数据
if data.upper() == "BYEBYE": # 客户端输入的是一个此指令
client_conn.send("exit".encode("UTF-8")) # 向客户端进行请求响应
break # 结束while循环
else: # 进行正常的响应
client_conn.send(("【ECHO】%s" % data).encode("UTF-8")) # 向客户端进行请求响应
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
6、telnet localhost 8080
7、
# coding : UTF-8
import socket
SERVER_HOST = "127.0.0.1" # 网络服务器的主机名称或IP地址
SERVER_PORT = 8080 # 服务器连接端口
def main(): # 主函数
with socket.socket() as client_socket: # 建立客户端Socket
client_socket.connect((SERVER_HOST, SERVER_PORT)) # 连接服务端
while True: # 客户端一定要不断的与服务端进行交互
input_data = input("请输入要发送的数据(输入“byebye”结束):") # 键盘输入
client_socket.send(input_data.encode("UTF-8")) # 数据发送
echo_data = client_socket.recv(100).decode("UTF-8") # 回应数据
if echo_data.upper() == "EXIT": # 结束
break # 断开循环
else: # 正常响应
print(echo_data) # 输出服务端返回内容
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
8、
# coding : UTF-8
import socket, multiprocessing
SERVER_HOST = "localhost" # 127.0.0.1(本机IP)
SERVER_PORT = 8080 # 服务绑定端口
def echo_handle(client_conn, address): # 进程处理函数
print("【服务端】客户端连接到服务器端,客户端的地址为:%s、连接端口:%s" % address)
with client_conn: # 进行客户端的处理
while True: # 不断的进行信息的接收与响应
data = client_conn.recv(100).decode("UTF-8") # 接收客户端发送来的数据
if data.upper() == "BYEBYE": # 客户端输入的是一个此指令
client_conn.send("exit".encode("UTF-8")) # 向客户端进行请求响应
break # 结束while循环
else: # 进行正常的响应
client_conn.send(("【ECHO】%s" % data).encode("UTF-8")) # 向客户端进行请求响应
def main(): # 主函数
# socket网络服务在每一次处理完成之后一定要使用close()方法进行关闭,所以可以利用with结构来进行定义
with socket.socket() as server_socket: # 创建了一个服务端的Socket
server_socket.bind((SERVER_HOST, SERVER_PORT)) # 绑定本机的8080端口
server_socket.listen() # 开启监听
print("【服务端】服务器启动完毕,在“%s”端口上监听,等待客户端连接 ...." % SERVER_PORT)
while True: # 不断的进行请求的接收
# 当有客户端连接之后,那么会解除当前的阻塞状态,同时也可以获得客户端的Socket和地址
client_conn, address = server_socket.accept() # 进入到阻塞状态
process = multiprocessing.Process(target=echo_handle, args=(client_conn, address,),
name="客户端进程-%s" % address[1]) # 定义进程
process.start() # 启动进程
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
9、
# coding : UTF-8
import socket
SERVER_HOST = "localhost" # 127.0.0.1(本机IP)
SERVER_PORT = 8080 # 服务绑定端口
def main(): # 主函数
# socket.AF_INET使用IPV4网络协议来进行服务端创建;
# socket.SOCK_DGRAM:创建一个数据报协议的网络端(UDP)
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as server_socket: # 创建了一个服务端的Socket
server_socket.bind((SERVER_HOST, SERVER_PORT)) # 绑定本机的8080端口
print("【服务端】服务器启动完毕,在“%s”端口上监听,等待客户端连接 ...." % SERVER_PORT)
while True: # 不断的进行数据的接收
data, addr = server_socket.recvfrom(30) # 接收客户端发送数据
print("【服务端】客户端连接到服务器端,客户端的地址为:%s、连接端口:%s" % addr)
echo_data = ("【ECHO】%s" % data.decode("UTF-8")).encode("UTF-8") # 响应数据
server_socket.sendto(echo_data, addr) # 将内容响应到发送端上
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
10、
# coding : UTF-8
import socket
SERVER_HOST = "127.0.0.1" # 网络服务器的主机名称或IP地址
SERVER_PORT = 8080 # 服务器连接端口
def main(): # 主函数
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as client_socket: # 建立客户端Socket
while True: # 客户端一定要不断的与服务端进行交互
input_data = input("请输入要发送的数据:") # 键盘输入
if input_data: # 有数据输入
client_socket.sendto(input_data.encode("UTF-8"), (SERVER_HOST, SERVER_PORT)) # 数据发送
echo_data = client_socket.recv(100).decode("UTF-8") # 回应数据
print("服务端响应数据:%s" % echo_data) # 输出内容
else: # 没有输入内容
break # 退出交互
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
11、
# coding : UTF-8
import socket
BROADCAST_CLIENT_ADDR = ("0.0.0.0", 21567) # 客户端绑定地址
def main(): # 主函数
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as client_socket: # 建立客户端Socket
client_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) # 设置广播模式
client_socket.bind(BROADCAST_CLIENT_ADDR) # 绑定广播客户端地址
while True: # 不断进行内容的接收
message, address = client_socket.recvfrom(100) # 接收广播数据
print("消息内容:%s、消息来源IP:%s、消息来源端口:%s" % (message.decode("UTF-8"), address[0], address[1]))
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
12、
# coding : UTF-8
import socket
BROADCAST_SERVER_ADDR = ("
def main(): # 主函数
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as server_socket: # 创建了一个服务端的Socket
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) # 设置广播模式
server_socket.sendto("Test:www.test.com".encode("UTF-8"), BROADCAST_SERVER_ADDR)
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数