Java——TCP
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket; //=================================================
// File Name : HelloServer_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : HelloServer_demo
public class HelloServer_demo { public static void main(String[] args) throws Exception{
// TODO 自动生成的方法存根
ServerSocket server = null; //声明ServerSocket对象
Socket client = null; //一个Socket对象表示一个客户端
PrintStream out = null; //声明打印流对象,以向客户端输出
server = new ServerSocket(8888); //表示服务器在8888端口上等待客户端的访问
System.out.println("服务器运行,等待客户端连接");
client = server.accept(); //程序阻塞,等待客户端连接
String str = "HelloWord"; //要向客户端输出信息
out = new PrintStream(client.getOutputStream()); //实例化打印流对象,输出信息
out.println(str);
out.close();
client.close();
server.close();
} }
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket; //=================================================
// File Name : HelloClient_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : HelloClient_demo
public class HelloClient_demo { public static void main(String[] args) throws Exception{
// TODO 自动生成的方法存根
Socket client = null; //声明Socket对象
client = new Socket("localhost",8888); //指定连接的主机和端口
BufferedReader buf = null; //声明BufferedReader对象,接受信息
//指定客户端的输入流
buf = new BufferedReader(new InputStreamReader(client.getInputStream()));
String str = buf.readLine();
System.out.println("服务器输出的内容是"+str);
client.close();
buf.close();
} }
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket; //=================================================
// File Name : EchoServer_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : EchoServer_demo
public class EchoServer_demo { public static void main(String[] args) throws Exception{
// TODO 自动生成的方法存根
ServerSocket server = null; //声明ServerSocket对象
Socket client = null; //一个Socket对象表示一个客户端
PrintStream out = null; //声明打印流对象,以向客户端输出
BufferedReader buf = null; //声明BufferedReader对象,接受信息
server = new ServerSocket(8888); //表示服务器在8888端口上等待客户端的访问
boolean f = true;
while(f){
System.out.println("服务器运行,等待客户端连接:");
client = server.accept(); //接收客户端连接
//得到客户端的输入信息
buf = new BufferedReader(new InputStreamReader(client.getInputStream()));
//实例化客户端的输出流
out = new PrintStream(client.getOutputStream());
boolean flag = true;
while(flag){
String str = buf.readLine(); //在此处不断地接收信息
if(str == null || "".equals(str)){
flag = false;
}else{
if("bye".equals(str)){
flag = false;
}else{
out.print("ECHO"+str);
}
}
}
out.close();
client.close();
}
server.close();
} }
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket; //=================================================
// File Name : EchoClient_demo
//------------------------------------------------------------------------------
// Author : Common //主类
//Function : EchoClient_demo
public class EchoClient_demo { public static void main(String[] args) throws Exception{
// TODO 自动生成的方法存根
Socket client = null; //声明Socket对象
client = new Socket("localhost",8888); //指定连接的主机和端口
BufferedReader buf = null; //声明BufferedReader对象,接受信息
PrintStream out = null; //输出流,向服务器端发送信息
BufferedReader input = null; //声明BufferedReader对象
//从键盘接收数据
input = new BufferedReader(new InputStreamReader(System.in));
//向服务器端输出信息
out = new PrintStream(client.getOutputStream());
//接收服务器端输入信息
buf = new BufferedReader(new InputStreamReader(client.getInputStream()));
boolean flag = true; while(flag){
System.out.print("输入信息:");
String str = input.readLine(); //从键盘接收数据
out.println(str); if("bye".equals(str)){
flag = false;
}else{
String echo = buf.readLine();
System.out.println(echo);
}
}
client.close();
buf.close();
} }
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket; //=================================================
// File Name : EchoClient_demo
//------------------------------------------------------------------------------
// Author : Common // 类名:ActionHandle
// 属性:
// 方法:
class EchoThreadServer implements Runnable{
private Socket client = null; public EchoThreadServer(Socket client){
this.client = client;
} @Override
public void run() {
// TODO 自动生成的方法存根
PrintStream out = null; //声明打印流对象,以向客户端输出
BufferedReader buf = null; //声明BufferedReader对象,接受信息 try{
//得到客户端的输入信息
buf = new BufferedReader(new InputStreamReader(client.getInputStream()));
//实例化客户端的输出流
out = new PrintStream(client.getOutputStream());
boolean flag = true; while(flag){
String str = buf.readLine(); //在此处不断地接收信息
if(str == null || "".equals(str)){
flag = false;
}else{
if("bye".equals(str)){
flag = false;
}else{
out.print("ECHO"+str);
}
} }
out.close();
client.close();
}catch(Exception e){
}
} } //主类
//Function : EchoClient_demo
public class EchoThreadServer_demo { public static void main(String[] args) throws Exception{
// TODO 自动生成的方法存根
ServerSocket server = null;
Socket client = null;
server = new ServerSocket(8888);
boolean f = true;
while(f){
System.out.println("服务器运行,等待客户端连接:");
client = server.accept();
new Thread(new EchoThreadServer(client)).start();
}
server.close();
} }
Java——TCP的更多相关文章
- Java TCP异步数据接收
之前一直采用.Net编写服务端程序,最近需要切换到Linux平台下,于是尝试采用Java编写数据服务器.TCP异步连接在C#中很容易实现,网上也有很多可供参考的代码.但Java异步TCP的参考资料较少 ...
- java tcp socket实例
java tcp socket实例 2011-04-20 13:58 2364人阅读 评论(1) 收藏 举报 socketjavatcpthreadserverclass package com.ne ...
- Java - TCP网络编程
Java - TCP网络编程 Server 逻辑思路: 创建ServerSocket(port),然后服务器的socket就启动了 循环中调用accept(),此方法会堵塞程序,直到发现用户请求,返回 ...
- Java TCP编程
Java编写TCP编程--回射信息实例 注:简单的tcp联系,还存在问题,readUTF()为阻塞型,如果之前的用户一直不输入,则一直阻塞,之后的用户再连接会出现问题. import java.io. ...
- JAVA TCP网络编程学习笔记
一.JAVA网络编程概述 网络应用程序,就是在已实现网络互联的不同计算机上运行的应用程序,这些程序之间可以相互交换数据.JAVA是优秀的网络编程语言,Java网络编程的类库位于java.net包中.J ...
- [Java] Tcp/udp 简单通信
本文转自 我自己的博客guozeyiblog.cn 欢迎来訪 效果图: //UDP通信 import java.awt.*; import java.awt.event.ActionEvent; i ...
- Java TCP服务端向客户端发送图片
/** * 1.创建TCP服务端,TCP客户端 * 2.服务端等待客户端连接,客户端连接后,服务端向客户端写入图片 * 3.客户端收到后进行文件保存 * @author Administrator * ...
- 【Java TCP/IP Socket】TCP Socket通信中由read返回值造成的的死锁问题(含代码)(转)
书上示例 在第一章<基本套接字>中,作者给出了一个TCP Socket通信的例子——反馈服务器,即服务器端直接把从客户端接收到的数据原原本本地反馈回去. 书上客户端代码如下: 1 2 3 ...
- Java TCP/UDP网络通信编程
本文转自:http://www.cnblogs.com/cdtarena/archive/2013/04/10/3012282.html 网络应用中基本上都是TCP(Transmission Cont ...
- java tcp ip网络编程(二) 套接字的基本使用
##基本套接字的使用 linux系统把网络io抽象成socket,对网络的编程就是对socket的编程. java把套接字抽象成类似的类 InetAddress SocketAddress 识别jav ...
随机推荐
- 安装myeclipse10后破解时发现没有common文件夹
今天重新安装了myeclipse10软件,然后在破解的时候发现安装目录下没有common,这是因为以前安装过myeclipse,卸载时没有完全清除,再次安装时,myeclipse会自动找到以前安装的c ...
- What is GSLB
Global Server Load Balancing 中文:全局负载均衡 SLB(Server load balancing)是对集群内物理主机的负载均衡,而GSLB是对物理集群的负载均衡.这里的 ...
- 18位身份证验证--java实现,正则表达式
简单的正则表达式: (1)preg_match("/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/",$id_card)(2)preg_match(&quo ...
- Dubbo系列(1)_背景介绍和基本情况
一.本文目的 主要介绍Dubbo的产生背景和需要解决的问题 二.产生背景 随着大数据量.高并发的互联网应用越来越多,单机系统已经无法满足系统的需要.通过SOA搭建一个分 ...
- Shell命令_正则表达式
正则表达式是包含匹配,通配符是完全匹配 基础正则表达式 test.txt示例文件 1 2 3 4 5 6 7 8 9 10 11 12 Mr. James said: he was the hones ...
- Region的周长, 面积与紧凑程度
Perimeter 边界长度. 计算方式跟边界的表示方式有关 Area 包含的点的个数 Compactness 两种常用的计算方式 \(\frac {perimeter^2}{area}\). cir ...
- BIEE11G配置Oracle数据源
注:数据库发生变化只需要修改视图层 两种方式: (1) 在BIEE自带的Oracle客户端目录下的tnsname.ora文件中配置 把E:\app\Administrator\produc ...
- Leetcode 86. Unique Binary Search Trees
本题利用BST的特性来用DP求解.由于BST的性质,所以root左子树的node全部<root.而右子树的node全部>root. 左子树 = [1, j-1], root = j, 右子 ...
- Android热身:通过网络获取资源并更新UI组件
Android热身:通过网络获取资源并更新UI组件 目标 点击"发送请求"按钮,下载某网页的html源码,并显示在TextView控件上:点击"清空",清除Te ...
- http80端口转发(实现微信公众号接口绑定IP时,同时支持多个公众号)
http80端口转发 背景 微信公众平台接口绑定服务器时,如果使用IP需要使用80端口,此组件可实现一个IP上绑定多个公众平台接口 使用方法 http://(IP)/WeixinMP/(转发的地址Ba ...