`

java socket编程入门

阅读更多
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端输入的字符
分享到:
评论
1 楼 Ts_Coo 2012-07-17  
    

相关推荐

    Java Socket编程入门

    ### Java Socket编程入门知识点详解 #### 一、Java Socket编程基础概述 1. **平台无关性**:Java语言的一个显著特点就是平台无关性,这意味着编写的Java程序可以在任何支持Java虚拟机(JVM)的平台上运行。这对于...

    Java网络编程从入门到精通

    1. **Socket编程**:Java的Socket类是进行网络通信的基础,它提供了客户端和服务端之间的连接。通过创建ServerSocket来监听客户端的连接请求,然后使用Socket类建立与客户端的连接,进行数据传输。 2. **URL和...

    有关Java的Socket编程入门例子

    通过这个入门例子,初学者可以理解Java Socket编程的基本原理和操作步骤,为进一步的网络编程打下坚实的基础。实际开发中,还可以结合NIO(非阻塞I/O)或其他高级框架如Netty,提高网络通信的效率和灵活性。

    Java TCP IP Socket编程(原书第2版).

    《Java TCP/IP Socket编程(原书第2版)》基于TCP/IP Socket相关原理,对如何在Java中进行Socket...《Java TCP/IP Socket编程(原书第2版)》适合作为Java Socket编程的入门教程,也可供从事网络相关专业的技术人员参考。

    Java Socket传输图片源代码

    在Java编程语言中,Socket是实现网络通信的基础组件。...同时,这个例子也适合初学者作为入门教程,通过实际操作加深对Socket编程的理解。在实际开发中,可以结合其他技术,如多线程、NIO等,提升程序性能和稳定性。

    Java编程入门.pdf

    ### Java编程入门:核心概念与实践 #### 一、引言 Java作为一种广泛使用的编程语言,自1995年Sun Microsystems公司推出以来,迅速在软件开发领域占据了一席之地。其跨平台特性(一次编写,到处运行)使得Java成为...

    Java Socket网络编程初级入门

    Java Socket网络编程是Java开发中实现网络通信的基础,它提供了客户端和服务器端进行数据交换的接口。在Java SDK中,`java.net`包包含了Socket相关的API,使得开发者能够轻松地进行网络编程。 首先,要理解网络编程...

    Java Socket 套接字编程经典入门

    Java Socket编程经典的入门教程(包含源代码) Socket即套接字 java.net包的客户端Socket,服务端ServerSocket; 单线程套接字客户端和服务端的处理; 服务端多线程处理客户端套接字; 带有线程池处理客户端套接字;...

    java socket入门经典代码

    本教程将通过几个简单但经典的入门示例,帮助初学者理解Socket编程的基本概念和使用方法。 首先,我们需要了解Socket的两个主要组成部分:ServerSocket和Socket。ServerSocket在服务器端创建,用于监听客户端的连接...

    java网络编程从入门到精通

    本教程"Java网络编程从入门到精通"将带你逐步掌握这个领域的重要知识点。 首先,我们要了解Java网络编程的基础。这包括Java I/O流体系结构,它是处理网络数据传输的核心。在Java中,网络通信基于套接字(Socket)和...

    Java SE编程入门教程 java网络编程(共29页).pptx

    Java SE编程入门教程涵盖了许多核心概念,从基本的语法到高级特性,旨在帮助初学者全面掌握Java编程。网络编程是其中的一个重要章节,涉及到设备间数据传输和通信的基础知识。 网络编程的核心是设备间的交互,这...

    java通信socket入门实例

    Java Socket通信是网络编程中的基础概念,主要用于实现客户端与服务器之间的双向通信。在这个"java通信socket入门实例"中,我们将探讨...通过实践,能够更好地掌握Java Socket编程,为后续的网络编程打下坚实的基础。

    socket 编程 网络编程资料大全 给力

    网络通信协议,网络通信基础知识,socket网络编程的一些基础知识,Socket网络编程学习笔记,网络编程总结,2011-学习资料大全:java_socket编程,学习网络编程的十个步骤,socket编程入门(经典版),Unix_网络编程...

    socket编程经验介绍

    总之,Socket编程虽然涉及到一些底层的概念,但相比其他高级的网络技术,它的学习曲线较为平缓,适合初学者作为网络编程的入门。只要具备了必要的基础知识,通过阅读本文和实践示例,就能快速掌握Socket编程,为更...

    一个简单的java socket程序

    Java Socket编程是网络编程的基础,它提供了在两个应用程序之间建立通信的途径。在这个"一个简单的java socket程序"中,我们将会探讨如何构建一个基础的服务器端(Server)和客户端(Client)模型,这对于初学者来说...

    java 网络编程入门实例总结

    你可以通过阅读和运行提供的HTML文档"java网络编程入门实例.html"来进一步理解这些概念。这个文档可能包含了详细的代码注释,解释了如何创建UDP和TCP服务器与客户端,以及如何在它们之间交换数据。通过实践这些示例...

    Socket编程 目录连接.doc

    #### 一、Java Socket 网络编程入门与基础概念 **1.1 Java Socket 网络编程简介** Java Socket 编程是Java平台提供的一种网络通信方式,主要涉及到Java标准库中的`java.net`包。该包包含了用于创建客户端与服务器...

    Java SE编程入门教程 java设计模式(共17页).pptx

    Java SE编程入门教程涵盖了大量的Java基础知识,包括设计模式、集合、IO、异常处理、线程、网络编程等多个方面。设计模式是一种在特定上下文中解决常见问题的模板,它提供了可复用的面向对象软件设计的经验总结。在...

    Java核心编程Java 课件ppt

    12. **网络编程**:学习Socket编程,理解TCP和UDP协议,以及ServerSocket和Socket类的使用。 13. **反射**:理解如何在运行时动态地获取类的信息,创建并调用对象的方法。 14. **枚举与注解**:学习Java中的枚举...

Global site tag (gtag.js) - Google Analytics