package com.mytest.socket; import java.io.IOException; import java.io.InputStream; import java.net.Socket; public class SocketTask implements Runnable{ private Socket socket; private String name; public SocketTask(Socket socket,String name) { this.socket=socket; this.name=name; System.out.println(name+"开始....."); } @Override public void run() { InputStream in = null; try { in = socket.getInputStream(); byte []buff=new byte[100]; StringBuffer sb=new StringBuffer(); //读取客户传送的信息 while(in.read(buff)!=-1) { String str= new String(buff,"UTF-8").trim(); sb.append(str); } in.close(); System.out.println("接收到信息:"+sb.toString()); System.out.println(name+"完成"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { if(in!=null) { in.close(); } socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
package com.mytest.socket; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class SocketSevice { //侦听端口 private int port; private ServerSocket serverSocket; //最大连接 private static int maxCount=3; //连接数量累计 private int index=0; private static final SocketSevice socketSevice=new SocketSevice(); //任务线程池 private ExecutorService threadPool=Executors.newFixedThreadPool(maxCount); private SocketSevice(){} public static SocketSevice getInstance() { return socketSevice; } public void listening(int port) throws IOException { this.port=port; serverSocket=new ServerSocket(port); //使用accept()阻塞等待客户请求,有客户请求到来则产生一个Socket对象,并继续执行 while(true){ Socket socket=serverSocket.accept(); SocketTask task=new SocketTask(socket,"任务"+index); threadPool.execute(task); index++; } } public static void main(String[] args) { SocketSevice s=SocketSevice.getInstance(); try { s.listening(1099); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public int getPort() { return port; } public void setPort(int port) { this.port = port; } }
public static void main(String[] args) { // TODO Auto-generated method stub try { for(int i=0;i<5;i++){ SocketClient client=new SocketClient("127.0.0.1",1099); client.writeString("哈哈哈"+i); client.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
您还没有登录,请您登录后再发表评论
Socket网络编程是计算机网络通信的核心技术之一,它允许两台或多台计算机通过互联网进行数据交换。在本学习笔记中,我们将深入探讨Socket编程的基本概念、原理以及如何在实际项目中应用。 首先,Socket是网络通信的...
在本文中,我们将深入探讨Netty 4.0的学习笔记,特别是关于Server与Client之间的通信机制。 首先,我们要理解Netty的核心概念——NIO(非阻塞I/O)。Netty基于Java NIO库构建,它提供了更高级别的API,简化了多路...
在提供的"Socket积累"文件中,可能包含了关于这些主题的代码示例、学习笔记或者常见问题解答,这些都是深入理解和掌握C#网络编程的宝贵资源。建议仔细研究这些材料,结合实践操作,以加深理解并提升技能。同时,不断...
client_socket, addr = server_socket.accept() print(f"接收到来自{addr}的连接请求") # 接收客户端发送的数据 request_data = client_socket.recv(1024).decode('utf-8') # 分析请求,处理HTTP请求行 ...
`server1.py`, `server2.py`, 和 `server3.py`是三个不同的服务器端程序,它们可能演示了不同类型的socket服务器实现。这些服务器通常会监听特定的端口,等待客户端的连接请求。一旦有客户端连接,服务器就可以接收...
本文将深入探讨“Socket学习笔记”中的核心知识点,主要通过分析提供的两个Java文件——SocketServer.java和SocketClient.java来阐述。 首先,Socket在计算机网络中扮演着客户端与服务器端通信的关键角色。它是一种...
本篇学习笔记将深入探讨如何结合Socket与线程池来提升程序的运行效率。 一、Socket基础 Socket,也称为套接字,是网络编程中的一个重要概念,它是进程间通信(IPC)的一种方式,特别是在网络环境中。Socket提供了一...
【标题】"基于C/S模式socket编程实例"指的是在客户端/服务器(Client/Server)架构下,通过Socket接口进行通信的编程示例。Socket是网络编程中的基础接口,它允许两个程序通过网络进行数据交换。在C/S模式中,客户端...
在Java编程领域,客户端-服务器(Client-Server)程序是一种常见的架构模式,它涉及两个主要组件:客户端应用程序和服务器端应用程序。在这个“Java客户端服务器程序学习笔记”中,我们将深入探讨这一主题,包括如何...
### JAVA学习笔记:Socket通信详解 #### 一、Socket通信概念与原理 Socket通信是Java网络编程中的核心概念,它提供了在不同计算机之间进行数据交换的能力。Socket可以被视为两个程序间进行通信的端点,一个Socket...
在本篇《Socket网络编程学习笔记(3)c# yuanma》中,我们将深入探讨如何使用C#中的套接字助手类来简化Socket编程过程,使初学者更容易掌握网络编程的基本概念。本文主要围绕服务端的侦听模式、接收客户端连接以及如何...
自学Linux网络编程关于socket的编写,包括 server.c 和 client.c 的编写;很详细的介绍了网络套接字socket的C/S模型TCP协议的服务器端和客户端的程序函数以及编写过程;重点介绍多路I/O转接服务器的实现,包括select...
总的来说,这个项目为我们提供了一个学习和实践Socket编程,尤其是多线程Socket通信的绝佳机会。通过分析和理解代码,我们可以掌握如何构建一个简单的网络聊天应用,这对于深入理解网络编程和并发处理至关重要。同时...
在标题“基于学习Socket的丛林战争服务器端笔记”中,我们接触到的关键词是“学习Socket”和“丛林战争服务器端”。从这些信息中,我们可以推断出文档内容主要涉及使用Socket编程来构建一个服务器端程序,该程序可能...
二、连接Socket 对于客户端,我们需要使用`connect()`方法连接到服务器的特定端口。例如,连接到IP地址'127.0.0.1'和端口号8080: ```python s.connect(('127.0.0.1', 8080)) ``` 服务器端则需要使用`bind()`方法...
Socket不是一种协议,而是调用接口,允许应用程序通过TCP或UDP进行通信。HTTP协议则属于应用层,主要处理数据的格式和内容,常用于Web应用。 在Node.js中,HTTP模块是基于NET模块构建的,HTTP服务器通过封装NET模块...
在Linux环境下进行网络编程,TCP(传输控制协议)和UDP(用户数据报协议)是两种主要...文件中的"学习笔记"可能包含了关于网络编程的更深入知识,如错误处理、多线程、异步I/O等,这些都是在网络编程中必不可少的部分。
在本项目中,我们探讨的是一个使用Java编程语言编写的简单聊天室程序,它由两个主要部分组成:服务器端(server1)和客户端(client1)。这个程序为用户提供了基本的实时文本通信功能,适用于学习Java网络编程和多...
相关推荐
Socket网络编程是计算机网络通信的核心技术之一,它允许两台或多台计算机通过互联网进行数据交换。在本学习笔记中,我们将深入探讨Socket编程的基本概念、原理以及如何在实际项目中应用。 首先,Socket是网络通信的...
在本文中,我们将深入探讨Netty 4.0的学习笔记,特别是关于Server与Client之间的通信机制。 首先,我们要理解Netty的核心概念——NIO(非阻塞I/O)。Netty基于Java NIO库构建,它提供了更高级别的API,简化了多路...
在提供的"Socket积累"文件中,可能包含了关于这些主题的代码示例、学习笔记或者常见问题解答,这些都是深入理解和掌握C#网络编程的宝贵资源。建议仔细研究这些材料,结合实践操作,以加深理解并提升技能。同时,不断...
client_socket, addr = server_socket.accept() print(f"接收到来自{addr}的连接请求") # 接收客户端发送的数据 request_data = client_socket.recv(1024).decode('utf-8') # 分析请求,处理HTTP请求行 ...
`server1.py`, `server2.py`, 和 `server3.py`是三个不同的服务器端程序,它们可能演示了不同类型的socket服务器实现。这些服务器通常会监听特定的端口,等待客户端的连接请求。一旦有客户端连接,服务器就可以接收...
本文将深入探讨“Socket学习笔记”中的核心知识点,主要通过分析提供的两个Java文件——SocketServer.java和SocketClient.java来阐述。 首先,Socket在计算机网络中扮演着客户端与服务器端通信的关键角色。它是一种...
本篇学习笔记将深入探讨如何结合Socket与线程池来提升程序的运行效率。 一、Socket基础 Socket,也称为套接字,是网络编程中的一个重要概念,它是进程间通信(IPC)的一种方式,特别是在网络环境中。Socket提供了一...
【标题】"基于C/S模式socket编程实例"指的是在客户端/服务器(Client/Server)架构下,通过Socket接口进行通信的编程示例。Socket是网络编程中的基础接口,它允许两个程序通过网络进行数据交换。在C/S模式中,客户端...
在Java编程领域,客户端-服务器(Client-Server)程序是一种常见的架构模式,它涉及两个主要组件:客户端应用程序和服务器端应用程序。在这个“Java客户端服务器程序学习笔记”中,我们将深入探讨这一主题,包括如何...
### JAVA学习笔记:Socket通信详解 #### 一、Socket通信概念与原理 Socket通信是Java网络编程中的核心概念,它提供了在不同计算机之间进行数据交换的能力。Socket可以被视为两个程序间进行通信的端点,一个Socket...
在本篇《Socket网络编程学习笔记(3)c# yuanma》中,我们将深入探讨如何使用C#中的套接字助手类来简化Socket编程过程,使初学者更容易掌握网络编程的基本概念。本文主要围绕服务端的侦听模式、接收客户端连接以及如何...
自学Linux网络编程关于socket的编写,包括 server.c 和 client.c 的编写;很详细的介绍了网络套接字socket的C/S模型TCP协议的服务器端和客户端的程序函数以及编写过程;重点介绍多路I/O转接服务器的实现,包括select...
总的来说,这个项目为我们提供了一个学习和实践Socket编程,尤其是多线程Socket通信的绝佳机会。通过分析和理解代码,我们可以掌握如何构建一个简单的网络聊天应用,这对于深入理解网络编程和并发处理至关重要。同时...
在标题“基于学习Socket的丛林战争服务器端笔记”中,我们接触到的关键词是“学习Socket”和“丛林战争服务器端”。从这些信息中,我们可以推断出文档内容主要涉及使用Socket编程来构建一个服务器端程序,该程序可能...
二、连接Socket 对于客户端,我们需要使用`connect()`方法连接到服务器的特定端口。例如,连接到IP地址'127.0.0.1'和端口号8080: ```python s.connect(('127.0.0.1', 8080)) ``` 服务器端则需要使用`bind()`方法...
Socket不是一种协议,而是调用接口,允许应用程序通过TCP或UDP进行通信。HTTP协议则属于应用层,主要处理数据的格式和内容,常用于Web应用。 在Node.js中,HTTP模块是基于NET模块构建的,HTTP服务器通过封装NET模块...
在Linux环境下进行网络编程,TCP(传输控制协议)和UDP(用户数据报协议)是两种主要...文件中的"学习笔记"可能包含了关于网络编程的更深入知识,如错误处理、多线程、异步I/O等,这些都是在网络编程中必不可少的部分。
在本项目中,我们探讨的是一个使用Java编程语言编写的简单聊天室程序,它由两个主要部分组成:服务器端(server1)和客户端(client1)。这个程序为用户提供了基本的实时文本通信功能,适用于学习Java网络编程和多...