今晚上开始研究java的网络编程,先从socket开始吧。
java为TCP协议提供了两个类:Socket和Socketserver。一个Socket实例代表了TCP的一端,一个TCP连接是一条抽象的双向信道,两端分别由IP地址和端口号确定。在开始通信前,要建立一个TCP连接,需要先由客户端TCP向服务端TCP发送连接请求。ServerSocket实例则监听TCP连接请求,并为每个请求创建新的Socket实例。
下面是一个简单的client/server的例子:
客户端代码:
//1.创建一个Socket实例,构造方法制定远程主机和端口建立一个TCP连接。 //2.通过套接字的输入输出流(I/O)进行通信,一个Socker连接实例包括InputStream和OutStream //3.使用Socket类的close()方法关闭连接 public class TCPECHOClient { public static void main(String[] args) { String server = "localhost"; String data = "Echo this!"; byte[] bs = data.getBytes(); try { //创建一个套接字,并连接到由名字或IP地址指定的服务器 Socket socket = new Socket(server,80); System.out.println("Connecting to server……"); //获取输入输出流 InputStream in = socket.getInputStream(); OutputStream out = socket.getOutputStream(); //发送字符串到回馈服务器 out.write(bs); //接收回馈信息 int totalDateRecived = 0; int bytesRecvd = 0 ; while(totalDateRecived<bs.length){ totalDateRecived +=bytesRecvd; if((bytesRecvd=in.read(bs,totalDateRecived,bs.length-totalDateRecived))==-1) throw new SocketException("connection closed!"); } System.out.println("received:"+new String(bs)); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
服务端:
public class TCPEchoServer { private static int BUFSiZE = 32; public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(80); int received = 0; byte[] receiveBuf = new byte[BUFSiZE]; while(true){ Socket socket = serverSocket.accept(); //返回一个包含了客户端地址和端口号的InetSocketAddress实例 SocketAddress clientAddress = socket.getRemoteSocketAddress(); System.out.println("handling client at:"+clientAddress); InputStream in = socket.getInputStream(); OutputStream out = socket.getOutputStream(); while((received=in.read(receiveBuf))!=-1){ out.write(receiveBuf,0,received); } socket.close(); } } catch (IOException e) { e.printStackTrace(); } } }
输出结果:
客户端:Connecting to server……
received:Echo this!
服务端:handling client at:/127.0.0.1:50884
相关推荐
8. Java网络编程中的并发编程:Java网络编程中的并发编程是指使用并发编程来实现网络通信。Java程序员可以使用并发编程来提高网络通信的效率和性能。 9. Java网络编程中的Socket选项:Socket选项是Java网络编程中...
总结来说,Java网络编程中的端口扫描器通过Socket类实现了对目标IP的端口探测,结合多线程技术提高了扫描效率。然而,使用此类工具时,我们必须意识到可能涉及的法律和道德问题,合理合法地使用这些技术。
Java Socket编程是网络编程中的重要组成部分,主要用于实现客户端与服务器之间的通信。在Java中,Socket是基于TCP协议的,提供了一种可靠的、基于字节流的双向通信方式。本资料包含的"Java源码:Socket编程"是一个...
Java Socket网络编程是Java平台中的核心特性,它为开发者提供了在TCP/IP协议下创建网络应用的能力。Socket编程主要用于实现客户端和服务器之间的通信,基于客户机/服务器模型。在这个模型中,服务器端通常处于被动...
本文旨在探讨如何利用Java及其内置的网络编程功能,通过TCP/IP协议建立TCPSocket来实现与网络数据库的有效连接,并介绍了几种常用的方法。 #### 关键词 Java网络编程;TCP Socket;数据库连接;TCP/IP协议;UDP...
知识点1:Java 网络编程基础 Java 网络编程是指使用 Java 语言编写的程序与其他设备或程序之间的通信。Java 提供了多种网络编程接口,包括Socket 编程、DatagramPacket 编程、URL 编程等。 知识点2:Socket 编程 ...
Java Socket 编程是 Java 语言中的一种网络编程技术,用于实现客户端和服务器端之间的数据传输。文件传输是 Java Socket 编程中的一种常见应用场景,通过建立客户端和服务器端之间的连接,实现文件的上传和下载。 ...
本书《Java网络编程实例:Java网络编程实例》显然聚焦于通过实际案例来教授这一核心技能。以下是一些主要的知识点,这些知识点通常会在书中详细讨论: 1. **TCP/IP协议基础**:首先,了解TCP/IP模型和协议栈是非常...
java的网络编程代码 socket,代码里面有注释
Java网络编程的核心在于通过网络协议实现与其他计算机的通讯。Java支持的主要网络协议包括TCP/IP和UDP。这两种协议各有特点,可以根据具体的应用场景选择合适的协议。 - **TCP/IP协议**:面向连接、保证可靠传输。...
1. **Java Socket编程**:Java的Socket类提供了基于TCP/IP协议的网络通信能力。通过ServerSocket创建服务器端,Socket创建客户端,两者建立连接后可以进行双向数据传输。例如,你可以构建一个简单的聊天应用或文件...
Java网络编程是开发分布式应用程序的关键技术之一,Socket网络编程在其中扮演着至关重要的角色。本教程将深入探讨Java中的Socket编程,特别是如何实现网上广播功能。网上广播允许一个设备向网络上的所有设备发送数据...
Java 提供了丰富的网络编程 API,包括 Socket 编程、datagram 编程、 URL 编程等。Java 网络编程可以实现客户端/服务器端的通信、数据传输、网络资源共享等功能。 knowledge point 2: Socket 编程 Socket 编程是...
总之,Java网络编程与Socket编程是Java开发者必须掌握的技术之一。理解其原理,熟练运用相关API,能帮助我们开发出高效、稳定的网络应用程序。在实际项目中,根据需求选择合适的通信方式,结合多线程、NIO等技术,...
java网络编程包括socket tcp/udp io/nio讲解 http协议 jdbc rmi java的安全框架等知识
Java网络编程是Java开发中的一个重要领域,它涉及到Socket编程、TCP/UDP通信协议等多个方面。通过掌握Java网络编程的基础知识和技能,开发者可以构建出功能强大、性能优异的网络应用程序。随着技术的不断发展,Java...
"华科-计算机网络实验报告-Java_Socket编程-网络组建实验.docx" 这份实验报告主要涵盖了计算机网络实验的两个部分:Socket 编程和网络组建实验。下面是对这两部分的详细解释和知识点总结: Socket 编程 Socket ...
在Java编程领域,网络编程是不可或缺的一部分,而Socket通信则是实现网络数据传输的基础。本案例主要探讨了如何使用Java的Socket API进行简单的文件传输。在这个过程中,我们将涉及到以下几个关键知识点: 1. **...
在Java中,网络编程主要依赖于Java的Socket编程、ServerSocket、URL类以及NIO(非阻塞I/O)等核心API。这份"Java网络编程期末考试复习题库+答案"为学生提供了全面的复习资源,涵盖了Java网络编程的主要知识点。 1. ...
Java网络编程中的Socket是应用程序通过TCP/IP协议进行通信的基础组件。Socket可以被理解为网络通信中的一个端点,它由IP地址和端口号两部分组成,这个定义来源于最初的TCP规范(RFC 793)。Socket有两种类型:流式...