Java分享笔记:Java网络编程--TCP程序设计
[1] TCP编程的主要步骤
客户端(client):
1.创建Socket对象,构造方法的形参列表中需要InetAddress类对象和int型值,用来指明对方的IP地址和端口号。
2.通过Socket对象的getOutputStream()方法返回OutputStream抽象类子类的一个对象,用来发送输出流。
3.通过输出流的write方法输出具体的信息。
4.关闭相应的流和Socket对象。
服务端(server):
1.创建ServerSocket类的对象,在构造器中指明端口号。
2.调用ServerSocket类对象的accept()方法,返回一个Socket类的实例。
3.通过Socket实例的getInputStream()方法获取一个输入流,用来接收来自客户端的信息。
4.利用输入流接收数据,并处理数据。
5.关闭相应的流、Socket对象、ServerSocket对象。
[2] Java源程序 ( 注意:在测试时先开启服务端方法server(),再开启客户端方法client() )
- package pack01;
- import java.io.*;
- import java.net.*;
- import org.junit.Test;
- public class TestNet1 {
- @Test //***********************客户端测试方法***********************
- public void client() {
- Socket socket = null; //建立客户端网络套接字
- OutputStream socket_os = null; //客户端输出流
- try {
- //1.获取本机环路地址
- InetAddress inet = InetAddress.getByName("127.0.0.1");
- //2.创建Socket对象
- socket = new Socket(inet, 10000);
- //3.获取输出流
- socket_os = socket.getOutputStream();
- //4.客户端输出信息
- socket_os.write( "客户端发送信息".getBytes() );
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try { //关闭输出流
- socket_os.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- try { //关闭客户端套接字
- socket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- @Test //***********************服务端测试方法***********************
- public void server() {
- ServerSocket serSocket = null;
- Socket socket = null;
- InputStream socket_is = null;
- try {
- serSocket = new ServerSocket(10000);
- socket = serSocket.accept(); //获取服务端套接字
- socket_is = socket.getInputStream(); //获取输入流
- byte[] b = new byte[100]; //用于接收信息的字节数组
- int len;
- StringBuffer sb = new StringBuffer();
- while( (len = socket_is.read(b)) != -1 ) {
- sb.append( new String(b,0,len) ); //将字节信息连续保存在buffer数组里
- }
- System.out.println("来自" + socket.getInetAddress().getHostName() + "的信息:");
- System.out.println( sb );
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try { //关闭输入流
- socket_is.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- try { //关闭Socket对象
- socket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- try { //关闭ServerSocket对象
- serSocket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
注:希望与各位读者相互交流,共同学习进步。
Java分享笔记:Java网络编程--TCP程序设计的更多相关文章
- java基础篇---网络编程(TCP程序设计)
TCP程序设计 在Java中使用Socket(即套接字)完成TCP程序的开发,使用此类可以方便的建立可靠地,双向的,持续的,点对点的通讯连接. 在Socket的程序开发中,服务器端使用serverSo ...
- Java精选笔记_网络编程
网络编程 概述 现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈. 在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(C ...
- JAVA基础知识之网络编程——-TCP/IP协议,socket通信,服务器客户端通信demo
OSI模型分层 OSI模型是指国际标准化组织(ISO)提出的开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它将网络分为七 ...
- 20165310 Java实验五《网络编程与安全》
20165310 Java实验五<网络编程与安全> 任务一 题目:①编写MyBC.java实现中缀表达式转后缀表达式的功能:②编写MyDC.java实现从上面功能中获取的表达式中实现后缀表 ...
- JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...
- Java基础教程:网络编程
Java基础教程:网络编程 基础 Socket与ServerSocket Socket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个s ...
- java学习笔记15--多线程编程基础2
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...
- 网络编程TCP协议-聊天室
网络编程TCP协议-聊天室(客户端与服务端的交互); <span style="font-size:18px;">1.客户端发数据到服务端.</span> ...
- C#网络编程TCP通信实例程序简单设计
C#网络编程TCP通信实例程序简单设计 采用自带 TcpClient和TcpListener设计一个Tcp通信的例子 只实现了TCP通信 通信程序截图: 压力测试服务端截图: 俩个客户端链接服务端测试 ...
随机推荐
- RDMA in CloudComputing
https://blog.csdn.net/qq_21125183/article/details/80563463
- 详细分析UserLock如何保证高校内部信息安全
俄克拉荷马城市公立学校的IT团队负责该片区接近43000个学生的网络管理工作.长期以来,学生和教师员工共享Windows网络登录为他们带来了很多难题. 由于没有并发登录的限制,也不能对网络使用情况进行 ...
- Win8 Pro 64 Install .net3.5 在线升级会遇到错误0x800F0906。
很多人安装Win8后都遇到了无法升级.NET Framework 3.5.1的问题,在线升级会遇到错误0x800F0906. Uninstall Windows update kB: KB296682 ...
- 通过 PowerShell 的方式增加虚拟机终结点
关于虚拟机终结点的概念请阅读:如何设置虚拟机的终结点 本文包含以下内容(本文在名称为"pstest"的虚拟机做测试): 通过 PowerShell 的方式增加终结点 通过 Powe ...
- SQL Server ->> 建立linked server到Azure SQL Server
EXEC master.dbo.sp_addlinkedserver @server = N'<nick_name_to_use>', @srvproduct=N'', @provider ...
- npm run dev运行Vue项目报错:Node Sass does not yet support your current environment
导入Vue项目后,#npm run dev 报错: error in ./src/pages/hello.vue Module build failed: Error: Node Sass does ...
- Database 2 Day DBA guide_Chapter3
Chapter 3: Getting Started with Oracle Enterprise Manager 第三章:开始oracle企业管理器. Purpose(目的) This chapte ...
- jsencrypt代码分析——openssl的rsa加密解密在js的实现
在js上做rsa,感觉jsencrypt这个是封装的比较好的,但用起来还是遇到了些坑,所以踩进代码里填填坑- 项目在这里 https://github.com/travist/jsencrypt [r ...
- ZT在谷歌上班感受如何?
在谷歌上班感受如何? 2013-11-05 作者:腾讯科技 出处: 互联网 责编:zlu 在谷歌这家全球最大最有抱负的技术公司工作将是怎样的情景呢?是天堂般的享受,还是地狱般的折磨呢?下面看一 ...
- 如何在SAP CRM WebClient UI里创建HANA Live Report
1. 使用业务角色ANALYTICSPRO登录WebClient UI: 2. 点击新建按钮: 为新建的报表分配一个HANA Live Query: 指定Query的参数: 上图WebClient U ...