2011-04-20 13:58 2364人阅读 评论(1) 收藏 举报
  1. package com.network;
  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.OutputStream;
  8. import java.io.OutputStreamWriter;
  9. import java.net.InetSocketAddress;
  10. import java.net.ServerSocket;
  11. import java.net.Socket;
  12. import java.util.Arrays;
  13. public class ServerChat {
  14. /**
  15. * @param args
  16. * @throws IOException
  17. */
  18. public static void main(String[] args) throws IOException {
  19. // TODO Auto-generated method stub
  20. InetSocketAddress isa = new InetSocketAddress("10.140.86.98",5858);
  21. ServerSocket server = new ServerSocket();
  22. server.bind(isa);
  23. System.out.println("isBound: " + server.isBound());
  24. System.out.println("SocketAddress: " + server.getLocalSocketAddress());
  25. new Thread(new WorkingServer(server)).start();
  26. while(true){
  27. Socket client = server.accept();
  28. System.out.println("this main thread");
  29. InputStream in = client.getInputStream();
  30. InputStreamReader read = new InputStreamReader(new BufferedInputStream(in));
  31. OutputStream out = client.getOutputStream();
  32. OutputStreamWriter write = new OutputStreamWriter( new BufferedOutputStream(out));
  33. write.write("hello");
  34. write.flush();
  35. char [] cbuf = new char[100];
  36. Arrays.fill(cbuf, '/0');
  37. int len = read.read(cbuf, 0, 100);
  38. StringBuilder sb = new StringBuilder(100);
  39. sb.append(cbuf, 0, len);
  40. System.out.println(sb.toString());
  41. read.close();
  42. client.close();
  43. write.close();
  44. }
  45. }
  46. }
  1. package com.network;
  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.OutputStream;
  8. import java.io.OutputStreamWriter;
  9. import java.net.ServerSocket;
  10. import java.net.Socket;
  11. import java.util.Arrays;
  12. public class WorkingServer implements Runnable {
  13. private ServerSocket server;
  14. WorkingServer(ServerSocket s){
  15. server = s;
  16. }
  17. void communicat( Socket client) throws IOException{
  18. System.out.println("this sub thread: " + Thread.currentThread().getId());
  19. InputStream in = client.getInputStream();
  20. InputStreamReader read = new InputStreamReader(new BufferedInputStream(in));
  21. OutputStream out = client.getOutputStream();
  22. OutputStreamWriter write = new OutputStreamWriter( new BufferedOutputStream(out));
  23. write.write("hello");
  24. write.flush();
  25. char [] cbuf = new char[100];
  26. Arrays.fill(cbuf, '/0');
  27. int len = read.read(cbuf, 0, 100);
  28. StringBuilder sb = new StringBuilder(100);
  29. sb.append(cbuf, 0, len);
  30. System.out.println(sb.toString());
  31. read.close();
  32. //      /client.close();
  33. write.close();
  34. }
  35. @Override
  36. public void run() {
  37. // TODO Auto-generated method stub
  38. System.out.println(Thread.currentThread());
  39. while(true){
  40. try {
  41. Socket client = server.accept();
  42. Thread.sleep(5000);
  43. communicat(client);
  44. } catch (IOException e) {
  45. // TODO Auto-generated catch block
  46. e.printStackTrace();
  47. } catch (InterruptedException e) {
  48. // TODO Auto-generated catch block
  49. e.printStackTrace();
  50. }
  51. }
  52. }
  53. }
    1. package com.network;
    2. import java.io.IOException;
    3. import java.io.InputStream;
    4. import java.io.InputStreamReader;
    5. import java.io.OutputStreamWriter;
    6. import java.net.Socket;
    7. import java.net.UnknownHostException;
    8. public class ClientSock {
    9. /**
    10. * @param args
    11. * @throws IOException
    12. * @throws UnknownHostException
    13. */
    14. public static void main(String[] args) throws UnknownHostException, IOException {
    15. // TODO Auto-generated method stub
    16. Socket s = new Socket("10.140.86.98", 5858);
    17. System.out.println( "remote socket " + s.getRemoteSocketAddress());
    18. InputStream in = s.getInputStream();
    19. InputStreamReader reader = new InputStreamReader(in);
    20. char [] cbuf = new char[100];
    21. int len = reader.read(cbuf);
    22. StringBuilder sb = new StringBuilder(100);
    23. sb.append(cbuf, 0, len);
    24. System.out.println(sb.toString());
    25. OutputStreamWriter writer = new OutputStreamWriter(s.getOutputStream());
    26. writer.write("from client");
    27. writer.close();
    28. reader.close();
    29. s.close();
    30. }
    31. }

java tcp socket实例的更多相关文章

  1. Java中使用Socket连接判断Inputstream结束,java tcp socket服务端,python tcp socket客户端

    最近在试着用java写一个socket的服务器,用python写一个socket的客户端来完成二者之间的通信,但是发现存在一个问题,服务器方面就卡在读取inputsream的地方不动了,导致后面的代码 ...

  2. JAVA TCP Socket

    服务器端   package com.Pong.tcpip; import java.io.BufferedReader; import java.io.IOException; import jav ...

  3. java nio socket实例

    Server端代码: public class NioServer { //通道管理器 private Selector selector; //获取一个ServerSocket通道,并初始化通道 p ...

  4. java之TCP(Socket,serverSocket)实例

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  5. JAVA 通过 Socket 实现 TCP 编程

    简介 TCP简介 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机 ...

  6. 【Java TCP/IP Socket】基于线程池的TCP服务器(含代码)

    了解线程池 在http://blog.csdn.net/ns_code/article/details/14105457(读书笔记一:TCP Socket)这篇博文中,服务器端采用的实现方式是:一个客 ...

  7. 【Java TCP/IP Socket】TCP Socket(含代码)

    TCP的Java支持 协议相当于相互通信的程序间达成的一种约定,它规定了分组报文的结构.交换方式.包含的意义以及怎样对报文所包含的信息进行解析,TCP/IP协议族有IP协议.TCP协议和UDP协议.现 ...

  8. Flex通信-与Java实现Socket通信实例

    Flex通信-与Java实现Socket通信实例  转自:http://blessht.iteye.com/blog/1136888 博客分类: Flex 环境准备 [服务器端] JDK1.6,“ja ...

  9. 《Java TCP/IP Socket 编程 》读书笔记之十一:深入剖析socket——TCP套接字的生命周期

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/16113083 建立TCP连接      新的Socket实例创建后,就立即能用于发送和接收 ...

随机推荐

  1. QGrapicsItem类

    这个类翻译了好久,实在是成员函数太多了,分享出来,希望对大家有用,多多支持哦~~ 详细介绍 QGraphicsItem类是视图框架的一部分,是在一个QGraphicsScene中最基本的图形类,它为绘 ...

  2. 7.usr下重要目录和文件详解

    1./usr下重要目录和文件详解: /usr(存放用户安装的应用软件目录,如MySQL,Apache,这是一个非常重要的目录,类似于Windows下的Program Files目录,用户的很多应用程序 ...

  3. linux还原svn

    仓库中版本的备份及还原形式主要有两种:方式一:直接备份仓库整个文件夹(全部版本),重装svn程序后直接还原过去.方式二:通过svn命令行备份和还原指定版本号的数据全备份:使用svnadmin hotc ...

  4. Java进阶知识点7:不要只会写synchronized - JDK十大并发编程组件总结

    一.背景 提到Java中的并发编程,首先想到的便是使用synchronized代码块,保证代码块在并发环境下有序执行,从而避免冲突.如果涉及多线程间通信,可以再在synchronized代码块中使用w ...

  5. 你该了解的10个 Python 模块

    Python很优雅.使用以下模块有助于保持你的代码整洁.易于维护.欢迎补充. Docopt.忘了optparse和argparse吧,使用docstring来构建优雅的.高可读性.复杂(如果你有这个需 ...

  6. oracle fn project 开源faas 框架

    1. 介绍 Fn is an event-driven, open source, functions-as-a-service compute platform that you can run a ...

  7. 常用DNS列表(电信、网通)

    电信 DNS 列表 -- 共 32 条 (按拼音排序) 电信 A安徽 202.102.192.68 202.102.199.68     电信 A澳门 202.175.3.8 202.175.3.3 ...

  8. 如何调试Excel VBA代码

    Excel VBA出错时给出的错误信息极少,需要充分利用各种工具来进行调试. 1.编译错误 常见的编译错误有: 错误的源代码格式,比如if后面缺少then:在编辑器中该行会变成红色. 错误的语法结构, ...

  9. React组件传值方式总结

    1. 子组件向父组件传值 父组件Header: import Nav from 'Nav.js'; class Header extends React.Component { constructor ...

  10. spring mvc处理http请求报错:java.lang.IllegalStateException: getInputStream() has already been called for this request

    发送post请求到controller处理失败,报错日志如下: java.lang.IllegalStateException: getInputStream() has already been c ...