socket 编程实例

1.socket编程

软件测试并jmeter为的是实现客户端并发,jmeter 的原理是使用线程池,

而软件开发的目的是为实现服务端的并发支持多用户同时并发工作

2. 基于多线程实现套接字服务端实现并发

客户端:
‘‘‘客户端只要单用户循环通信‘‘‘import socketclient = socket.socket()client.connect((‘127.0.0.1‘,8090))while True:    client.send(‘33‘.encode(‘utf-8‘))    data = client.recv(1024)    print(data)
‘‘‘服务端要实现多用户连接  并实现循环通信‘‘‘方式1: 线程池import socketfrom concurrent.futures import ThreadPoolExecutor

server = socket.socket()

server.bind(    (‘127.0.0.1‘, 9000))

server.listen(5)

# 1.封装成一个函数   多用户实现循环通信   一个用户创建一个通道def run(conn):    while True:        try:            data = conn.recv(1024)            if len(data) == 0:                break            print(data.decode(‘utf-8‘))            conn.send(‘111‘.encode(‘utf-8‘))

        except Exception as e:            break

    conn.close()

if __name__ == ‘__main__‘:    print(‘Server is run....‘)    pool = ThreadPoolExecutor(50)    while True:        conn, addr = server.accept()        print(addr)        pool.submit(run, conn)
方式2: 直接循环不设置并发数
def communicate(conn):   #  一个用户一个通道    while True:        try:            data = conn.recv(1024)            if len(data) == 0:                break            conn.send(data.upper())        except Exception as e:            print(e)            break    conn.close()

def server():    server = socket.socket()    server.bind((‘127.0.0.1‘,8989))    server.listen(5)    while  True:        conn,addr =  server.accept()        t = Thread(target= communicate,args=(conn,) )         #  因为python中的() 既可以表示数学公式中的小括号,又可以表示元组        t.start()                         #  执行communicate函数   server函数为一个线程,start()会令启一个线程

if __name__ == ‘__main__‘:    s = Thread(target = server)    s.start()


原文地址:https://www.cnblogs.com/bigbox/p/12040209.html

时间: 2024-08-30 05:15:29

socket 编程实例的相关文章

TCP/UDP套接字 java socket编程实例

网络协议七层结构: 什么是Socket? socket(套接字)是两个程序之间通过双向信道进行数据交换的端,可以理解为接口.使用socket编程也称为网络编程,socket只是接口并不是网络通信协议. HTTP协议和Socket的区别 http协议是应用层,其模式是请求-应答,客户端发送请求,服务器端进行响应.传输的数据是原始格式的数据,eg :json.xml.text等数据格式. socket不是协议是接口,socket提供TCP/UDP socket 的实例,供java 或者其他语言操作数

android之socket编程实例

sokcet 编程实例 android bundle类

Java学习(六):Socket编程实例

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求. Java已经简化了Socket的编程接口.Java提供了ServerSocket来对其进行支持.事实上当创建该类的一个实例对象并提供一个端口资源,就建立了一个固定位置可以让其他计算机来访问了,如:ServerSocket server=new ServerSocket(6789);       这里稍微要注意的是端口的分配必须是唯一的.因为端口是为了唯一标识每台计算机唯一服务的.

java socket编程实例代码讲解

1.所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 操作java socket时用到的最多的三个方法为: accept():主要用于服务器端产生"阻塞",等待客户端的链接请求,并且返回一个客户端的Socket实例: getInputStream():方法主要用来获得网络连接输入,同时返回一个InputStream对象实例: getOutputStream

网络编程之socket编程实例

简单实例1 server.c 1 #include <sys/types.h> 2 #include <sys/socket.h> // 包含套接字函数库 3 #include <stdio.h> 4 #include <netinet/in.h> // 包含AF_INET相关结构 5 #include <arpa/inet.h> // 包含AF_INET相关操作的函数 6 #include <unistd.h> 7 #include

socket编程实例(包含线程的和线程间的通信的使用)

本文转自:http://blog.csdn.net/x605940745/article/details/17001641 注意点:注册访问的网络权限:android中UI线程不能有访问网络的操作,否则会报android.os.NetworkOnMainThreadException的异常 [html] view plaincopy <uses-permission android:name="android.permission.INTERNET"/> 实例一 客户端 [

NIO Socket编程实例

NIOUtil类,用来通过SOcket获取BufferedReader和PrintWriter. package IO; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java

linux下socket编程-进程间通信

一.什么是Socket Socket接口是TCP/IP网络通信的API,Socket接口定义了许多函数或例程,可以用它们来开发TCP/IP网络上的应用程序. Socket类型有两种:流式Socket (SOCK_STREAM)和数据报式Socket(SOCK_DGRAM).流式是一种面向连接针对于面向连接的TCP服务应用:数据报式Socket是一种无连接针对无连接的UDP服务应用.sock通信的基本过程如下: 二.Socket建立 程序可以调用Socket函数建立socket,该函数返回一个类似

[转]Linux的SOCKET编程详解

From : http://blog.csdn.net/hguisu/article/details/7445768 1. 网络中进程之间如何通信 进 程通信的概念最初来源于单机系统.由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进 程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如 UNIX BSD有:管道(pipe).命名管道(named pipe)软中断信号(signal) UNIX system V有:消息(message).共享存储区(shared mem