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通信 通信程序截图: 压力测试服务端截图: 俩个客户端链接服务端测试 ...
随机推荐
- 用户选择wordpress程序建站需要知道的一些事情 - 安全、优化速度、配置
WordPress是我们使用最多的CMS程序之一,无论是我们的个人博客,还是企业网站,甚至中小型站点,我们都可以用WP程序部署.我们看到海外网站的时候,大部分都是用的WORDPRESS程序.在我们国人 ...
- bit byte 字 字节 关系 简列
字 word 字节 byte 位 bit 字长是指字的长度 1字=2字节(1 word = 2 byte = 16bit) 1字节=8比特(1 byte = 8bit) 1比特=1位 一个字的字长为1 ...
- mysql的sql_mode介绍和修改
原文链接: http://blog.csdn.net/wulantian/article/details/8905573 mysql目录下有一个配置文件my.conf. mysql数据库有一个环境 ...
- win10安装mxnet cuda9.0-gpu版
类似于上一篇文章 Anaconda3.6 python3.6.5 cuda9.0+ cudnn7.0 安装MXNet 1.设置清华源 conda config --prepend cha ...
- babel 的一些记录
babel 的作用是将高版本的代码转换成低版本的可支持的代码: 过程是 读取 source code 转换为语法树 -> 经过处理 -> 转换为 code: babel有preset和pl ...
- javascript正则表达式 - 学习笔记
JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于Re ...
- PHP:使用php,循环html中的select标签与Php数据
select标签,我们都知道是下拉列表,这里,我们使用foreach循环,将select中的数据进行输出 例子: 1.数据表:mimi_article,表中有个字段,为1或0,表示着是或否 2.通过p ...
- May 26th 2017 Week 21st Friday
One thorn of experience is worth a whole wilderness of warning. 一次痛彻心扉的经历,抵得上千百次的告诫. Several days ag ...
- scrum和团队合作
一. 队名及宣言 队名 the better for you 宣言Change our lives with code 二. 队员及分工 a.承担软件工程的角色 姓名 学号 角色 张美庆 B20150 ...
- 打开eclipse出现an error has occurred.see the loh file
解决方案: 1,打开eclipse安装目录下的eclipse.ini文件:2,打开的文本文件最后添加一行--add-modules=ALL-SYSTEM3,保存重新打开Eclipse. 测试过已经ok