【Java学习笔记】TCP客户端/服务器端

简介:

客户端:

import java.net.Socket; 
import java.net.InetAddress; 
import java.net.UnknownHostException; 
import java.io.OutputStream; 
import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.PrintWriter; 
import java.io.IOException; 
public class TcpClient { 
    public static void main(String[] args) throws IOException { 
        try { 
            byte a[] = { 127,0,0,1 }; 
            InetAddress address = InetAddress.getByAddress(a); 
            Socket socket = new Socket(address,9876); 
            OutputStream os = socket.getOutputStream(); 
            PrintWriter out = new PrintWriter(os,true); 
            InputStream is = socket.getInputStream(); 
            InputStreamReader isr = new InputStreamReader(is); 
            BufferedReader in = new BufferedReader(isr); 
            String line; 
            line = "A line sent by the client"; 
            out.println(line); 
            line = in.readLine(); 
            System.out.println("client got: " + line); 
            out.close(); 
            in.close(); 
            socket.close(); 
        } catch (UnknownHostException e) { 
            System.out.println(e); 
        } catch (IOException e) { 
            System.out.println(e); 
        } 
    } 
}

服务器端:

import java.net.ServerSocket; 
import java.net.Socket; 
import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.io.PrintWriter; 
public class TcpServer { 
    public static void main(String[] args) { 
        try { 
            ServerSocket serverSocket = new ServerSocket(9876); 
            Socket socket = serverSocket.accept(); 
/*和Client一样了*/ 
            InputStream is = socket.getInputStream(); 
            InputStreamReader isr = new InputStreamReader(is); 
            BufferedReader in = new BufferedReader(isr); 
            OutputStream os = socket.getOutputStream(); 
            PrintWriter out = new PrintWriter(os,true); 
            String line; 
            while((line = in.readLine()) != null) { 
                 System.out.println("server got: " + line); 
                 line = "A line sent by the server"; 
                 out.println(line); 
            } 
            out.close(); 
            in.close(); 
            socket.close(); 
            serverSocket.close(); 
        } catch (IOException e) { 
            System.out.println(e); 
            System.exit(1); 
        } 
    } 
}

 




本文转自gnuhpc博客园博客,原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/17/2822297.html,如需转载请自行联系原作者

相关文章
|
1月前
|
Java 编译器 开发工具
Java基础学习笔记——idea篇
JDK由JRE(包含JVM和核心类库)和开发工具箱(如javac编译器和java运行工具)组成。Java项目结构包括Project、Module、Package和Class。IDEA快捷键包括:生成main方法(main psvm)、复制代码(Ctrl+D)、删除代码(Ctrl+Y/X)、格式化代码(Ctrl+Alt+L)、重命名(Shift+F6)等。
17 0
|
1天前
|
网络协议 Dubbo Java
【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器
【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器
8 0
|
2天前
|
关系型数据库 MySQL Java
通过使用阿里云服务器,搭建Java程序的运行环境
通过使用阿里云服务器,搭建Java程序的运行环境
|
3天前
|
JavaScript 前端开发 搜索推荐
Vue 的服务器端渲染(SSR)和客户端渲染(CSR)在渲染过程、性能、用户体验等方面都存在显著的区别
【5月更文挑战第8天】Vue 的 SSR 和 CSR 在渲染上有明显差异。SSR 服务器端生成 HTML 返回给浏览器,提供更快首屏加载和更好的 SEO,但增加服务器负担。CSR 客户端渲染,首次加载可能较慢,但交互更流畅,开发更简单。两者各有优劣,需根据项目需求权衡选择。
10 2
|
3天前
|
网络协议 Ubuntu Java
如何使用MCSM搭建我的世界Java版服务器并实现远程联机游戏
如何使用MCSM搭建我的世界Java版服务器并实现远程联机游戏
15 0
|
9天前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
43 0
|
9天前
|
Apache 项目管理 数据安全/隐私保护
Windows安装TortoiseSVN客户端结合Cpolar实现公网提交文件到本地服务器
Windows安装TortoiseSVN客户端结合Cpolar实现公网提交文件到本地服务器
|
10天前
|
Apache 项目管理 数据安全/隐私保护
TortoiseSVN客户端如何安装配置并实现公网访问服务端提交文件到本地服务器
TortoiseSVN客户端如何安装配置并实现公网访问服务端提交文件到本地服务器
|
11天前
|
监控 安全 持续交付
【专栏】Webhook是服务器主动发送事件通知的机制,打破传统客户端轮询模式,实现数据实时高效传递。
【4月更文挑战第29天】Webhook是服务器主动发送事件通知的机制,打破传统客户端轮询模式,实现数据实时高效传递。常用于持续集成部署、第三方服务集成、实时数据同步和监控告警。具有实时性、高效性和灵活性优势,但也面临安全风险和调试挑战。理解并善用Webhook能提升系统性能,广泛应用于现代软件开发和集成。
|
12天前
|
弹性计算 运维 Java
Serverless 应用引擎产品使用之在Serverless 应用引擎中,将 Java 应用从 ECS 迁移到 SAE如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
40 2