Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。
什么是Socket?
所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。
开发一个Client/Server模型的Socket程序
服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private Socket socket;
private ServerSocket ss;
public Server() throws IOException {
ss = new ServerSocket(7777);
while (true) {
socket = ss.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
System.out.println("you input is : " + br.readLine());
}
}
public static void main(String[] args) {
try {
new Server();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
Socket client;
PrintWriter pw;
public Client() throws UnknownHostException, IOException {
client=new Socket("Socket服务器IP",7777);
pw=new PrintWriter(client.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
pw.write(br.readLine());
pw.close();
br.close();
}
public static void main(String[] args) {
try {
new Client();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个例子中服务端可以接收到Client端输入的字符
分享到:
- 2009-02-16 14:03
- 浏览 1301
- 评论(1)
- 论坛回复 / 浏览 (0 / 3424)
- 查看更多
相关推荐
### Java Socket编程入门知识点详解 #### 一、Java Socket编程基础概述 1. **平台无关性**:Java语言的一个显著特点就是平台无关性,这意味着编写的Java程序可以在任何支持Java虚拟机(JVM)的平台上运行。这对于...
1. **Socket编程**:Java的Socket类是进行网络通信的基础,它提供了客户端和服务端之间的连接。通过创建ServerSocket来监听客户端的连接请求,然后使用Socket类建立与客户端的连接,进行数据传输。 2. **URL和...
通过这个入门例子,初学者可以理解Java Socket编程的基本原理和操作步骤,为进一步的网络编程打下坚实的基础。实际开发中,还可以结合NIO(非阻塞I/O)或其他高级框架如Netty,提高网络通信的效率和灵活性。
《Java TCP/IP Socket编程(原书第2版)》基于TCP/IP Socket相关原理,对如何在Java中进行Socket...《Java TCP/IP Socket编程(原书第2版)》适合作为Java Socket编程的入门教程,也可供从事网络相关专业的技术人员参考。
在Java编程语言中,Socket是实现网络通信的基础组件。...同时,这个例子也适合初学者作为入门教程,通过实际操作加深对Socket编程的理解。在实际开发中,可以结合其他技术,如多线程、NIO等,提升程序性能和稳定性。
### Java编程入门:核心概念与实践 #### 一、引言 Java作为一种广泛使用的编程语言,自1995年Sun Microsystems公司推出以来,迅速在软件开发领域占据了一席之地。其跨平台特性(一次编写,到处运行)使得Java成为...
Java Socket网络编程是Java开发中实现网络通信的基础,它提供了客户端和服务器端进行数据交换的接口。在Java SDK中,`java.net`包包含了Socket相关的API,使得开发者能够轻松地进行网络编程。 首先,要理解网络编程...
Java Socket编程经典的入门教程(包含源代码) Socket即套接字 java.net包的客户端Socket,服务端ServerSocket; 单线程套接字客户端和服务端的处理; 服务端多线程处理客户端套接字; 带有线程池处理客户端套接字;...
本教程将通过几个简单但经典的入门示例,帮助初学者理解Socket编程的基本概念和使用方法。 首先,我们需要了解Socket的两个主要组成部分:ServerSocket和Socket。ServerSocket在服务器端创建,用于监听客户端的连接...
本教程"Java网络编程从入门到精通"将带你逐步掌握这个领域的重要知识点。 首先,我们要了解Java网络编程的基础。这包括Java I/O流体系结构,它是处理网络数据传输的核心。在Java中,网络通信基于套接字(Socket)和...
Java SE编程入门教程涵盖了许多核心概念,从基本的语法到高级特性,旨在帮助初学者全面掌握Java编程。网络编程是其中的一个重要章节,涉及到设备间数据传输和通信的基础知识。 网络编程的核心是设备间的交互,这...
Java Socket通信是网络编程中的基础概念,主要用于实现客户端与服务器之间的双向通信。在这个"java通信socket入门实例"中,我们将探讨...通过实践,能够更好地掌握Java Socket编程,为后续的网络编程打下坚实的基础。
网络通信协议,网络通信基础知识,socket网络编程的一些基础知识,Socket网络编程学习笔记,网络编程总结,2011-学习资料大全:java_socket编程,学习网络编程的十个步骤,socket编程入门(经典版),Unix_网络编程...
总之,Socket编程虽然涉及到一些底层的概念,但相比其他高级的网络技术,它的学习曲线较为平缓,适合初学者作为网络编程的入门。只要具备了必要的基础知识,通过阅读本文和实践示例,就能快速掌握Socket编程,为更...
Java Socket编程是网络编程的基础,它提供了在两个应用程序之间建立通信的途径。在这个"一个简单的java socket程序"中,我们将会探讨如何构建一个基础的服务器端(Server)和客户端(Client)模型,这对于初学者来说...
你可以通过阅读和运行提供的HTML文档"java网络编程入门实例.html"来进一步理解这些概念。这个文档可能包含了详细的代码注释,解释了如何创建UDP和TCP服务器与客户端,以及如何在它们之间交换数据。通过实践这些示例...
#### 一、Java Socket 网络编程入门与基础概念 **1.1 Java Socket 网络编程简介** Java Socket 编程是Java平台提供的一种网络通信方式,主要涉及到Java标准库中的`java.net`包。该包包含了用于创建客户端与服务器...
Java SE编程入门教程涵盖了大量的Java基础知识,包括设计模式、集合、IO、异常处理、线程、网络编程等多个方面。设计模式是一种在特定上下文中解决常见问题的模板,它提供了可复用的面向对象软件设计的经验总结。在...
12. **网络编程**:学习Socket编程,理解TCP和UDP协议,以及ServerSocket和Socket类的使用。 13. **反射**:理解如何在运行时动态地获取类的信息,创建并调用对象的方法。 14. **枚举与注解**:学习Java中的枚举...