一、创建一个Server端
1、创建一个ServerSocket端,并绑定一个端口
ServerSocket serverSockdet = new ServerSocket(port);
2、接收客户端连接
Socket socket = serverSocket.accept();
3、处理客户端请求
伪代码:
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8766);
System.out.println("server is working....");
Socket socket = serverSocket.accept();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String receive = bufferedReader.readLine();
System.out.println("我收到了客户端给我的请求: " + receive);
//
PrintWriter printWriter = new PrintWriter(socket.getOutputStream(), true);
printWriter.println("你好啊,欢迎光临");
bufferedReader.close();
printWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
二、创建客户端
1、创建Socket,Socket socket = new Socket(port);
2、发送请求到服务端
伪代码
PrintWriter printWriter = null;
BufferedReader bufferedReader = null;
try {
Socket socket = new Socket("127.0.0.1", 8766);
System.out.println("客户端启动了。。。");
printWriter = new PrintWriter(socket.getOutputStream(), true);
printWriter.println("我是客户端,我来请求你" + "\n");
bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String response = bufferedReader.readLine();
System.out.println("这是服务端给我的响应:" + response);
这里有个注意点:
printWriter.println() 发送消息的时候,要使用println(),不使用print(),否则服务端读取会有问题。 这是因为使用println()后会,结尾会有\n,表示已经写完了,否则服务端使用readLine()认为一直读。
传统的BIO弊端:来一个客户端请求,创建一个线程去处理,优化的方式呢,伪异步,就是使用线程池
转载于:https://my.oschina.net/u/2504766/blog/1510112
分享到:
相关推荐
《NIO与Socket编程技术指南》是一本深入探讨Java NIO(New Input/Output)和Socket编程的专业书籍,由高洪岩撰写。本书主要针对Java开发者,旨在帮助他们理解和掌握这两种在开发网络应用中至关重要的技术。 Java ...
Linux下使用C++进行Socket编程是...总之,Linux下的C++ Socket编程涉及对传统Socket API的封装和利用面向对象的方法来简化网络编程。这种方法提高了代码的可重用性和可维护性,使得网络通信程序的设计更加灵活和高效。
在本文档中,主要讨论了一个名为"活跃网络Socket编程"(ANSP)的概念,这是对传统Socket编程的一种扩展,特别是在活跃网络的背景下。 活跃网络(Active Networks)是一种通信网络架构,允许在网络中注入可执行代码...
Linux/Unix系统下的Socket编程是网络通信程序设计的基础,其核心是BSD Socket接口,这一接口被广泛地应用在众多Unix系统中,包括Linux。BSD Socket接口提供了一组用于网络通信的函数,这些函数允许开发者进行套接字...
### Socket编程原理详解 #### 一、问题的引入 在探讨Socket编程原理之前,我们先来看一下UNIX系统中I/O操作的基本模式。UNIX系统中I/O操作的基本模式为:打开(open) - 读/写(read/write) - 关闭(close)。这种模式...
Java Socket编程是网络编程的一个重要部分,它允许在网络中的计算机之间进行数据交换。Socket编程是基于TCP/IP协议的,因此了解计算机网络、分组报文和协议对于掌握Socket编程来说至关重要。接下来,我将详细解释...
而Socket编程是网络通信的基础,MFC对Socket编程提供了封装,使得开发者能够在MFC环境下更方便地进行网络通信程序的开发。本知识点将详细解析如何使用MFC进行Socket网络编程,以创建一个服务器/客户端应用程序。 ##...
在本文中,我们将深入探讨基于Windows的Socket编程,特别是如何利用异步的WSASelect模型构建一个聊天应用程序。Socket编程是计算机网络中的基础组件,它允许程序之间通过网络进行通信。在Windows环境下,我们通常...
Java TCP/IP Socket编程是网络通信领域中的核心技术,广泛应用于服务器端和客户端之间的数据传输。本资源包含第二版书籍的相关源码,旨在帮助开发者深入理解并实践Socket编程。以下是关于Java TCP/IP Socket编程的...
Linux 嵌入式 Socket 编程原理及实例分析 本资源详细介绍了 Linux 嵌入式 Socket 编程的原理和实例分析。Socket 编程是 Unix 系统中的一种网络应用编程接口,用于实现进程间的通信。 Socket 编程的起源 UNIX 系统...
Linux下的ATM Socket API设计旨在兼容传统Socket API,同时满足ATM网络的特殊需求。这种API的设计思想源自BSD 4.3版的UNIX Socket API,并进行了扩展,以适应ATM网络的特性。ATM Socket编程允许开发者创建、管理ATM...
### Socket编程入门(经典版) #### 1. 预备知识 在开始学习socket编程之前,我们需要了解一些基础知识,这些知识对于理解socket的工作原理至关重要。 ##### 1.1 网络字节序 在计算机网络通信中,数据是以流的形式...
在IT行业中,Socket编程是一种基础且重要的网络通信技术,它为应用程序提供了低级别的网络通信接口。本主题聚焦于“VC6.0 Socket编程”,这是一个基于Visual C++ 6.0开发环境下的网络编程实践,主要涉及到如何利用...
Java 传统Socket编程是网络通信中的基础技术,它允许两台计算机通过TCP/IP协议进行数据交换。在Java中,Socket类和ServerSocket类是实现这一功能的核心。本篇将深入探讨这两个类以及相关知识点。 首先,`...
### Linux Socket编程原理详解 #### 一、引言 Socket编程是现代计算机网络通信的核心技术之一,尤其是在基于Linux的操作系统中。它为不同主机上的进程提供了高效、灵活且可靠的通信手段。本文旨在深入探讨Linux...
在计算机网络领域,TCP/IP是一组用于互联网数据传输的协议,而Socket编程则是实现这些协议功能的一种编程技术。在Java语言中,Socket编程通过提供标准的API来实现网络通信,使得网络应用开发变得更加方便和高效。 ...
在本文中,我们将深入探讨Netty与传统Socket编程的交互实例,这对于理解如何在实际项目中整合这两种技术至关重要。 首先,让我们了解Netty的核心特性。Netty采用了非阻塞I/O模型,这使得它在处理大量并发连接时表现...
### SOCKET编程原理详解 #### 2.1 问题的引入 在探讨SOCKET编程之前,我们先了解一下UNIX系统中I/O操作的基本模式。在UNIX环境中,I/O操作遵循着一个典型的流程:打开-读/写-关闭(open-write-read-close)。用户...