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. 控制器中获取store

    在Controller中要获取View中的选中值我用[javascript] view plaincopyprint?var cmp = Ext.ComponentQuery.query('weldl ...

  2. secureCRT背景颜色设置

    1. Options->Global Options->Advanced select 'Monochrome'  click 'Edit' button normal: Backgrou ...

  3. 使用事件捕获实时捕获img是否加载完毕, 实现iframe内容高度自动适应

    如何判断在html中图片加载完毕呢? 给img图片加onload事件呗. 如何判断一个界面中所有的图片加载完毕呢? 给所有的图片加上onload事件呗. 如果有1000张图片那要怎么绑定事件呢? 我们 ...

  4. oracle 知识

    sqlplus /  as sysdba;  使用操作系统登录oracle数据库 conn panie/panie;  使用普通用户连接数据库 --开启归档模式shutdown immediate;s ...

  5. cygwin-介绍-安装

    初学linux时,最头疼的是,因为windows和linux各有优点,各有用途,所以只能麻烦的在两者之间切换,不断的重启.开机时也麻烦,因为初学者大多数使用windows,装了linux后,开机会自动 ...

  6. Spring Security3学习实例

    Spring Security是什么? Spring Security,这是一种基于Spring AOP和Servlet过滤器的安全框架.它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理 ...

  7. Python中remove,del和pop的区别

    以a=[1,2,3] 为例,似乎使用del, remove, pop一个元素2 之后 a都是为 [1,3], 如下:http://Novell.Me >>> a=[1,2,3] &g ...

  8. perl array, scalar and hash

    #!/usr/bin/perl use strict; use warnings; my @aa=("aa", "bb", "cc"); p ...

  9. Python 中文编码问题小结

    1. 下面的语句要放在代码开头,指定文件编码, 可以识别 脚本中的所有字符和中文. # -*- coding:utf-8 -*- 2. codecd 编码转换 如果想要读取文本中的中文,需要借助于co ...

  10. Java线程与并发库高级应用-线程范围内共享数据ThreadLocal类

    1.线程范围内共享变量 1.1 前奏: 使用一个Map来实现线程范围内共享变量 public class ThreadScopeShareData { static Map<Thread, In ...