[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程序设计的更多相关文章

  1. java基础篇---网络编程(TCP程序设计)

    TCP程序设计 在Java中使用Socket(即套接字)完成TCP程序的开发,使用此类可以方便的建立可靠地,双向的,持续的,点对点的通讯连接. 在Socket的程序开发中,服务器端使用serverSo ...

  2. Java精选笔记_网络编程

    网络编程 概述 现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈. 在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(C ...

  3. JAVA基础知识之网络编程——-TCP/IP协议,socket通信,服务器客户端通信demo

    OSI模型分层 OSI模型是指国际标准化组织(ISO)提出的开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它将网络分为七 ...

  4. 20165310 Java实验五《网络编程与安全》

    20165310 Java实验五<网络编程与安全> 任务一 题目:①编写MyBC.java实现中缀表达式转后缀表达式的功能:②编写MyDC.java实现从上面功能中获取的表达式中实现后缀表 ...

  5. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  6. Java基础教程:网络编程

    Java基础教程:网络编程 基础 Socket与ServerSocket Socket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个s ...

  7. java学习笔记15--多线程编程基础2

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...

  8. 网络编程TCP协议-聊天室

    网络编程TCP协议-聊天室(客户端与服务端的交互); <span style="font-size:18px;">1.客户端发数据到服务端.</span> ...

  9. C#网络编程TCP通信实例程序简单设计

    C#网络编程TCP通信实例程序简单设计 采用自带 TcpClient和TcpListener设计一个Tcp通信的例子 只实现了TCP通信 通信程序截图: 压力测试服务端截图: 俩个客户端链接服务端测试 ...

随机推荐

  1. PAT 1083 List Grades

    #include <cstdio> #include <cstdlib> using namespace std; class Stu { public: ]; ]; }; i ...

  2. oracle相关常识

    1.数据类型 VARCHAR2() NUMBER() DATE CLOB BLOB 2.复制表:create table tableName as select * from emp3.新增列:ALT ...

  3. java参数传递之值传递

    一 概述 1.什么是参数传递? 调用方法时向形参传递数据的过程叫做参数传递.在编程语言中有两种传递方式:值传递与引用传递.必须强调的是,这里提到的两种传递方式不是仅限于java使用到的传递方式,而是出 ...

  4. javascript的对象创建模式---命名空间模式

    javascript中对象的概念是很普遍的,对象是是对象,数组是对象,函数也是对象,字符串其实也是对象.常见的对象创建方法有对象字面量.构造函数创建.我们先来看看对象的创建还有哪些更高级的模式. 一. ...

  5. Linux虚拟系统安装——Ubuntu18.04 & CentOS6.5

    Linux虚拟系统安装--Ubuntu18.04 & CentOS6.5 摘要:Linux简介.虚拟系统安装.系统备份与文件介绍 1. Linux简介 (1)1968年,MIT.Bell实验室 ...

  6. SQL Server数据类型一览表

    数据类型 类型 描             述 bit 整型 bit 数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或Fa lse .O ...

  7. JSTL核心库

    1 out和set(重点) out <c:out value=”aaa”/> 输出aaa字符串常量 <c:out value=”${aaa}”/> 与${aaa}相同 < ...

  8. mvc页面间的传值

    本文大致讲解mvc前后端的传值方式,包括control向view.view向control.以及action向action. 回顾 我们回顾下在ASP.NET WebForms中,页面之间最常用的传值 ...

  9. python 02/100例

    题目 输入某年某月某日,判断这一天是这一年的第几天? 分析 例如:2018年6月19日 天数 = 19天 + 一月天数 + 2月天数 + ... + 6月天数 注意 闰年的2月是29天,如果年份是闰年 ...

  10. Vue项目中引入ElementUI

    前提:创建好的vue项目. 1.安装ElementUI 转到项目根目录,输入命令:#cnpm install element-ui --save-dev 2.在 main.js 引入并注册 impor ...