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的更多相关文章

  1. Java TCP异步数据接收

    之前一直采用.Net编写服务端程序,最近需要切换到Linux平台下,于是尝试采用Java编写数据服务器.TCP异步连接在C#中很容易实现,网上也有很多可供参考的代码.但Java异步TCP的参考资料较少 ...

  2. java tcp socket实例

    java tcp socket实例 2011-04-20 13:58 2364人阅读 评论(1) 收藏 举报 socketjavatcpthreadserverclass package com.ne ...

  3. Java - TCP网络编程

    Java - TCP网络编程 Server 逻辑思路: 创建ServerSocket(port),然后服务器的socket就启动了 循环中调用accept(),此方法会堵塞程序,直到发现用户请求,返回 ...

  4. Java TCP编程

    Java编写TCP编程--回射信息实例 注:简单的tcp联系,还存在问题,readUTF()为阻塞型,如果之前的用户一直不输入,则一直阻塞,之后的用户再连接会出现问题. import java.io. ...

  5. JAVA TCP网络编程学习笔记

    一.JAVA网络编程概述 网络应用程序,就是在已实现网络互联的不同计算机上运行的应用程序,这些程序之间可以相互交换数据.JAVA是优秀的网络编程语言,Java网络编程的类库位于java.net包中.J ...

  6. [Java] Tcp/udp 简单通信

    本文转自  我自己的博客guozeyiblog.cn 欢迎来訪 效果图: //UDP通信 import java.awt.*; import java.awt.event.ActionEvent; i ...

  7. Java TCP服务端向客户端发送图片

    /** * 1.创建TCP服务端,TCP客户端 * 2.服务端等待客户端连接,客户端连接后,服务端向客户端写入图片 * 3.客户端收到后进行文件保存 * @author Administrator * ...

  8. 【Java TCP/IP Socket】TCP Socket通信中由read返回值造成的的死锁问题(含代码)(转)

    书上示例 在第一章<基本套接字>中,作者给出了一个TCP Socket通信的例子——反馈服务器,即服务器端直接把从客户端接收到的数据原原本本地反馈回去. 书上客户端代码如下: 1 2 3 ...

  9. Java TCP/UDP网络通信编程

    本文转自:http://www.cnblogs.com/cdtarena/archive/2013/04/10/3012282.html 网络应用中基本上都是TCP(Transmission Cont ...

  10. java tcp ip网络编程(二) 套接字的基本使用

    ##基本套接字的使用 linux系统把网络io抽象成socket,对网络的编程就是对socket的编程. java把套接字抽象成类似的类 InetAddress SocketAddress 识别jav ...

随机推荐

  1. 屠龙之路_大杀技之倚天屠龙_TenthDay

    惊天变! alhpa恶龙终于现身了!随之出现是屠龙天团的少年们多时不见的公主.alpha恶龙虽然元气大伤.意识不清,但是它庞大的身躯只要稍微动弹,足以重创在场的所有少年,以及现在还被恶龙牢牢囚在手心的 ...

  2. 十天冲刺---Day2

    站立式会议 站立式会议内容总结: git上Issues新增内容: 燃尽图 照片

  3. SQL SERVER 2008向ORACLE 11G迁移示例

    来源于:http://www.cnblogs.com/hiizsk/ 由SQL SERVER 2008向ORACLE 11G迁移过程记录之一-表 使用Oracle Sql Developer将SQL ...

  4. OKhttp初步

    OkHttp 使用方法:1.分为同步和异步.同步:1.getRequest request = new Request.Builder().url(utl).build();Response resp ...

  5. 6.7-3将数组arr中索引值为2的元素替换为“bb”

    package shuzu; import java.util.Arrays; public class TH { public static void main(String[] args) { / ...

  6. git 查看生成对象

    1. find .   查看目录中所有对象 2. find .git/objects 查看所有对象 3. git cat-file -p 散列值  输出文件内容

  7. 【BZOJ 3242】【UOJ #126】【CodeVS 3047】【NOI 2013】快餐店

    http://www.lydsy.com/JudgeOnline/problem.php?id=3242 http://uoj.ac/problem/126 http://codevs.cn/prob ...

  8. 一起学HTML基础-CSS样式表常用样式属性

    样式属性 背景与前景: background-color:#F90; /*背景颜色,样式表优先级最高*/ background-image:url(路径); /*设置背景图片(默认)*/ backgr ...

  9. Value和Object的区别

    在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有. 1,先看看setV ...

  10. 简进祥-SVN版本控制方案:多分支并行开发,多环境自动部署

    两地同时开发一个产品,目前线上有3个环境:测试环境.预发布环境.生产环境.目前系统部署采用jenkins自动化部署工具 用jenkins部署的方案 jenkins 测试环境:配置了各个分支的svn 地 ...