`
redstarofsleep
  • 浏览: 443872 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

知识点整理之Java Socket

    博客分类:
  • Java
阅读更多

依旧是自己平时用到的一些东西的整理

 

Socket客户端:

public class SocketClient {

	public static void main(String[] args) {
		Socket socket = null;
		OutputStream out = null;
		InputStream in = null;
		
		try {
			socket = new Socket();
			// connect and set timeout
			socket.connect(new InetSocketAddress("127.0.0.1",8333), 2000);
			in = socket.getInputStream();
			out = socket.getOutputStream();
			out.write("abcd".getBytes());
			out.flush();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				in.close();
				out.close();
				socket.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

 

Socket服务器端:

public class SocketServer {

	public static void main(String[] args) {
		
		try {
			// 实例化sSocket,参数为端口号port
			ServerSocket serverSocket = new ServerSocket(8333);
			while (true) {
				// 实例化Socket
				Socket socket = serverSocket.accept();
				// 新建线程TCPServer,并启动
				new Thread(new ServerSocketTask(socket)).start();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

public class ServerSocketTask implements Runnable {
	
	private Socket socket;
	
	public ServerSocketTask(Socket socket) {
		this.socket = socket;
	}

	@Override
	public void run() {
		// 定义输出流
		OutputStream output = null;
		// 定义输入流
		InputStream input = null;

		try {		

			// 初始化输入流
			input = this.socket.getInputStream();
			// 初始化输出流
			output = socket.getOutputStream();

			String message = null;
			
			while (true) {
				// 定义byte[]数组,大小为1024;
				byte[] buf = new byte[1024];
				// 从输入流中读取输入存入字节数组
				int len = input.read(buf);
				// 将字节数组转换成字符串
				message = new String(buf,0,len);
				//* 实际使用中这里要用System.arrayCopy把byte数组拼起来,判断到结束条件后再break
				System.out.println(message);
				// 向输出流写入SUCCESS返回给客户端
				output.write("SUCCESS".getBytes());
				// 输出流flush
				output.flush();
				// 跳出循环
				break;
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}

}
分享到:
评论

相关推荐

    JAVA核心知识点整理.zip

    "JAVA核心知识点整理.zip"这个压缩包文件包含了对Java进阶学习的重要知识点的详细概述,主要集中在PDF文档"JAVA核心知识点整理.pdf"中。以下是这份资料可能涵盖的主要内容: 1. **Java基础**:首先,你会学到Java的...

    JAVA核心知识点整理——java自学资料.rar

    这份"JAVA核心知识点整理——java自学资料.rar"包含了一份详细的Java学习资源,旨在帮助已经具备一定Java基础知识的开发者进一步提升技能,深入理解Java的底层机制。以下是这份资料可能涵盖的一些核心知识点和学习...

    2020最新JAVA核心知识点整理,完整.zip

    这份"2020最新JAVA核心知识点整理,完整.zip"压缩包包含了全面的Java核心知识点,旨在帮助程序员,尤其是准备面试的开发者,深入理解并掌握Java的基础与高级特性。 1. **Java基础**:这部分内容可能涵盖变量、数据...

    Java面试知识点整理总结

    Java面试知识点整理总结涵盖了多个关键领域,这对于求职者或希望提升技术能力的Java开发者来说是宝贵的资源。以下是对这些主题的详细阐述: 1. **Java基础**:这是学习任何编程语言的基础,包括变量、数据类型、...

    JAVA核心知识点整理_java面试指南_java面试_

    以下是对标题、描述和标签的详细解释,以及可能出现在"JAVA核心知识点整理.pdf"中的关键内容: 一、基础语法 1. 变量与数据类型:理解基本数据类型(如int、float、char)和引用数据类型(如对象、数组)。掌握声明...

    JAVA核心知识点整理

    这份"JAVA核心知识点整理"涵盖了Java语言的基础到高级概念,旨在帮助开发者全面理解并熟练掌握Java技术。以下是一些关键知识点的详细说明: 1. **基础语法**:Java的基础包括变量、数据类型(如整型、浮点型、字符...

    JAVA核心知识点整理_java面试_

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。为了在Java面试中脱颖而出,了解并掌握核心知识点至关重要。...理解并熟练运用这些知识点,将为你的Java面试之路打下坚实基础。

    JAVA期末复习知识点整理

    针对"JAVA期末复习知识点整理"这个主题,我们可以深入探讨Java的核心概念、语法结构以及它在K12教育阶段的应用。 首先,让我们从基础开始。Java是一种面向对象的语言,它的基本语法包括变量、数据类型、运算符、...

    一点课堂 JAVA核心知识点整理.zip

    "一点课堂 JAVA核心知识点整理.zip"这个压缩包文件包含了关于Java编程的关键概念和技能的详细总结,非常适合初学者和有经验的开发者进行学习和复习。 首先,Java的核心知识点包括基础语法。这包括变量声明、数据...

    【Java面试资料】-JAVA核心面试知识点整理

    这份"【Java面试资料】-JAVA核心面试知识点整理"PDF文档,很可能是求职者或开发者提升技能、准备面试的重要参考资料。以下是根据标题和描述提炼出的一些关键Java面试知识点,以及它们在实际编程和面试中的重要性。 ...

    JAVA期末复习知识点整理.zip

    为了帮助你在期末考试中取得优异成绩,这份“JAVA期末复习知识点整理”涵盖了Java语言的核心概念和重要特性。下面,我们将深入探讨这些关键知识点。 1. **Java基础语法**:包括变量声明、数据类型(基本类型与引用...

    JAVA核心知识点整理.rar

    这份"JAVA核心知识点整理.rar"文件显然包含了对Java编程语言关键概念的深度概述。PDF文档"JAVA核心知识点整理.pdf"可能涵盖了以下几个重要的Java学习主题: 1. **Java基础**:这部分通常包括Java的历史背景、环境...

    java学习资源知识点整理

    Java学习资源知识点整理 在Java学习的道路上,深入理解各个领域的知识是至关重要的。本资源包涵盖的内容丰富,包括Java核心、操作系统管理以及相关的技术框架,旨在帮助开发者全面提升技术能力。 1. **Java核心** ...

Global site tag (gtag.js) - Google Analytics