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. myeclipse 连接svn服务器验证位置时发生错误 404 forbidden

    来源于:https://my.oschina.net/softwarechina/blog/220300 网上有文章说是C:\Users\thinkpad\AppData\Roaming\Subver ...

  2. [转]Spring注解原理的详细剖析与实现

    原文地址:http://freewxy.iteye.com/blog/1149128/ 本文主要分为三部分: 一.注解的基本概念和原理及其简单实用 二.Spring中如何使用注解 三.编码剖析spri ...

  3. 【BZOJ 1043】【HNOI 2008】下落的圆盘 判断圆相交+线段覆盖

    计算几何真的好暴力啊. #include<cmath> #include<cstdio> #include<cstring> #include<algorit ...

  4. java中的字符,字符串,数字之间的转换

    string 和int之间的转换 string转换成int  :Integer.valueOf("12") int转换成string : String.valueOf(12) ch ...

  5. jquery.ui.widget详解

    案例详解 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  6. js-JavaScript高级程序设计学习笔记10

    第十四章 表单脚本 1.通过getElementBy**可以获得<form>元素,或者通过document.forms可以取得页面中所有的表单,可以通过数值索引或者name值取得特定的表单 ...

  7. 【BZOJ-4289】Tax 最短路 + 技巧建图

    4289: PA2012 Tax Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 168  Solved: 69[Submit][Status][Dis ...

  8. 【BZOJ-4562】食物链 记忆化搜索(拓扑序 + DP)

    4562: [Haoi2016]食物链 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 133  Solved: 112[Submit][Status] ...

  9. WinRAR命令行

    用法: rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件...> <@列表文件...> <解压路径\ ...

  10. C语言的时间函数

    下面是C语言的获取本地时间和构造时间进行格式化时间显示输出的相关函数:This page is part of release 3.35 of the Linux man-pages project. ...