`
wangfeiaini
  • 浏览: 54840 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java网络编程:socket与sockeserver

阅读更多

今晚上开始研究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

分享到:
评论

相关推荐

    Java网络编程案例教程习题参考答案 .pdf

    8. Java网络编程中的并发编程:Java网络编程中的并发编程是指使用并发编程来实现网络通信。Java程序员可以使用并发编程来提高网络通信的效率和性能。 9. Java网络编程中的Socket选项:Socket选项是Java网络编程中...

    JAVA网络编程:端口扫描器

    总结来说,Java网络编程中的端口扫描器通过Socket类实现了对目标IP的端口探测,结合多线程技术提高了扫描效率。然而,使用此类工具时,我们必须意识到可能涉及的法律和道德问题,合理合法地使用这些技术。

    Java源码:Socket编程.rar_java socket _java编程_socket java_socket编程 jav

    Java Socket编程是网络编程中的重要组成部分,主要用于实现客户端与服务器之间的通信。在Java中,Socket是基于TCP协议的,提供了一种可靠的、基于字节流的双向通信方式。本资料包含的"Java源码:Socket编程"是一个...

    Java Socket网络编程.pdf

    Java Socket网络编程是Java平台中的核心特性,它为开发者提供了在TCP/IP协议下创建网络应用的能力。Socket编程主要用于实现客户端和服务器之间的通信,基于客户机/服务器模型。在这个模型中,服务器端通常处于被动...

    Java网络编程:连接网络数据库的多种方法

    本文旨在探讨如何利用Java及其内置的网络编程功能,通过TCP/IP协议建立TCPSocket来实现与网络数据库的有效连接,并介绍了几种常用的方法。 #### 关键词 Java网络编程;TCP Socket;数据库连接;TCP/IP协议;UDP...

    Java网络编程实验报告.pdf

    知识点1:Java 网络编程基础 Java 网络编程是指使用 Java 语言编写的程序与其他设备或程序之间的通信。Java 提供了多种网络编程接口,包括Socket 编程、DatagramPacket 编程、URL 编程等。 知识点2:Socket 编程 ...

    Java Socket编程:文件传输.doc

    Java Socket 编程是 Java 语言中的一种网络编程技术,用于实现客户端和服务器端之间的数据传输。文件传输是 Java Socket 编程中的一种常见应用场景,通过建立客户端和服务器端之间的连接,实现文件的上传和下载。 ...

    《Java网络编程实例:Java网络编程实例》

    本书《Java网络编程实例:Java网络编程实例》显然聚焦于通过实际案例来教授这一核心技能。以下是一些主要的知识点,这些知识点通常会在书中详细讨论: 1. **TCP/IP协议基础**:首先,了解TCP/IP模型和协议栈是非常...

    java的网络编程代码 socket

    java的网络编程代码 socket,代码里面有注释

    Java网络编程:连接网络数据库的多种方法.pdf

    Java网络编程的核心在于通过网络协议实现与其他计算机的通讯。Java支持的主要网络协议包括TCP/IP和UDP。这两种协议各有特点,可以根据具体的应用场景选择合适的协议。 - **TCP/IP协议**:面向连接、保证可靠传输。...

    Java网络编程/Java网络编程实例

    1. **Java Socket编程**:Java的Socket类提供了基于TCP/IP协议的网络通信能力。通过ServerSocket创建服务器端,Socket创建客户端,两者建立连接后可以进行双向数据传输。例如,你可以构建一个简单的聊天应用或文件...

    Java网络编程(socket---网上广播).rar_Java 网络_Socket网络编程_java socket _ja

    Java网络编程是开发分布式应用程序的关键技术之一,Socket网络编程在其中扮演着至关重要的角色。本教程将深入探讨Java中的Socket编程,特别是如何实现网上广播功能。网上广播允许一个设备向网络上的所有设备发送数据...

    Java网络编程实践课程设计报告.pdf

    Java 提供了丰富的网络编程 API,包括 Socket 编程、datagram 编程、 URL 编程等。Java 网络编程可以实现客户端/服务器端的通信、数据传输、网络资源共享等功能。 knowledge point 2: Socket 编程 Socket 编程是...

    java网络编程socket编程等

    总之,Java网络编程与Socket编程是Java开发者必须掌握的技术之一。理解其原理,熟练运用相关API,能帮助我们开发出高效、稳定的网络应用程序。在实际项目中,根据需求选择合适的通信方式,结合多线程、NIO等技术,...

    java网络编程

    java网络编程包括socket tcp/udp io/nio讲解 http协议 jdbc rmi java的安全框架等知识

    Java网络编程:深入理解TCP,UDP通信机

    Java网络编程是Java开发中的一个重要领域,它涉及到Socket编程、TCP/UDP通信协议等多个方面。通过掌握Java网络编程的基础知识和技能,开发者可以构建出功能强大、性能优异的网络应用程序。随着技术的不断发展,Java...

    华科-计算机网络实验报告-Java_Socket编程-网络组建实验.docx

    "华科-计算机网络实验报告-Java_Socket编程-网络组建实验.docx" 这份实验报告主要涵盖了计算机网络实验的两个部分:Socket 编程和网络组建实验。下面是对这两部分的详细解释和知识点总结: Socket 编程 Socket ...

    Java网络编程-Socket-文件传输小案例

    在Java编程领域,网络编程是不可或缺的一部分,而Socket通信则是实现网络数据传输的基础。本案例主要探讨了如何使用Java的Socket API进行简单的文件传输。在这个过程中,我们将涉及到以下几个关键知识点: 1. **...

    Java网络编程期末考试复习题库+答案

    在Java中,网络编程主要依赖于Java的Socket编程、ServerSocket、URL类以及NIO(非阻塞I/O)等核心API。这份"Java网络编程期末考试复习题库+答案"为学生提供了全面的复习资源,涵盖了Java网络编程的主要知识点。 1. ...

    java 网络编程-socket

    Java网络编程中的Socket是应用程序通过TCP/IP协议进行通信的基础组件。Socket可以被理解为网络通信中的一个端点,它由IP地址和端口号两部分组成,这个定义来源于最初的TCP规范(RFC 793)。Socket有两种类型:流式...

Global site tag (gtag.js) - Google Analytics