网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 高级技术 > 多线程 > Java中SOCKET通讯源码  

Java中SOCKET通讯源码

2004-10-03  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  //ServeOneSocket.java 服务端源程序
  
  import java.io.*;
  import java.net.*;
  
  public class ServeOneSocket extends Thread {
  
  private Socket socket;
  private BufferedReader in;
  private PrintWriter out;
  private String content;
  
  /**
  * Constructor
  */
  public ServeOneSocket(Socket s,String c)throws IOException {
  socket=s;
  content=c;
  in=new BufferedReader(
  new InputStreamReader(
  socket.getInputStream()));
  //enable auto-flush
  out=new PrintWriter(
  new BufferedWriter(
  new OutputStreamWriter(
  socket.getOutputStream())),true);
  start();//calls run()
  }
  
  public void run(){
  try{
  while (true){
  String str=in.readLine();
  if (str.equals("END"))break;
  System.out.println("Echoing:"+str);
  out.println(str);
  out.println(content);
  }
  System.out.println("Closing...");
  }catch(IOException e){

网管bitscn_com


  }finally{
  try{
  socket.close();
  }catch(IOException e){}
  }
  }
  }
  
  //SocketClientThread.java 客户端源程序
  
  import java.net.*;
  import java.io.*;
  
  class SocketClientThread extends Thread{
  private Socket socket;
  private BufferedReader in;
  private PrintWriter out;
  private static int counter=0;
  private int id=counter++;
  private static int threadcount=0;
  final int port=8110;
  
  public static int threadCount(){
  return threadcount;
  }
  
  public SocketClientThread(InetAddress addr){
  System.out.println("Making client:"+id);
  threadcount++;
  try{
  socket=new Socket(addr,port);
  }catch(IOException e){
  }
  try{
  in=new BufferedReader(
  new InputStreamReader(
  socket.getInputStream()));
  out=new PrintWriter(
  new BufferedWriter(
  new OutputStreamWriter(
  socket.getOutputStream())),true); 网管网www.bitscn.com
  start();
  }catch(IOException e){
  try{
  socket.close();
  }catch(IOException e2){}
  }
  }
  
  public void run(){
  try{
  for (int i=0;i<25;i++){
  out.println("Client:"+id+":"+i);
  String str=in.readLine();
  System.out.println(str);
  }
  out.println("END");
  }catch(IOException e){
  }finally{
  try{
  socket.close();
  }catch(IOException e){}
  threadcount--;
  }
  }
  }
  
  public class MultiSocketClient {
  static final int MAX_THREADS=10;
  /**
  * main
  * @param args
  */
  public static void main(String[] args)throws IOException,InterruptedException {
  InetAddress addr=InetAddress.getByName(null);
  while (true){
  if (SocketClientThread.threadCount()  new SocketClientThread(addr);
  Thread.currentThread().sleep(100);
  }
  }
  }
  

TAGs   源码   通讯   new   private   IOException   public   int   try   catch      
 上一篇:1100行代码设计一个线程池   下一篇:Java 编程语言最薄弱的部分--线程模型
相关文章列表
Java中SOCKET通讯源码 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.典型Java线程池的代码及其各部分功能介绍
2.Java中SOCKET通讯源码
3.Java 5.0多线程编程
4.高级应用 java多线程设计模式详解之一
5.Java语言深入 多线程程序模型研究
6.Java线程总结
7.java多线程设计模式:wait/notify机制
8.高级应用 java多线程设计模式详解之二
9.多线程编程的设计模式 临界区模式
10.高级应用 java多线程设计模式详解之三
最新推荐文章:
1.使用技巧:Java程序开发中如何应用线程
2.Java多线程Socket操作猜数游戏样例
3.100行Java代码构建一个线程池。
4.读书笔记:多线程程序设计23个要点
5.Java程序多进程运行模式的实例分析
6.java的多线程同步初探
7.多线程在JAVA ME应用程序中的使用
8.线程运行栈信息的获取
9.Windows下多线程编程技术及其实现
10.线程的理解
网管论坛交流:
·不疯魔不成活
·令你大开眼界的真正标准化机房,已整理重
·为赈灾,女孩舍身拍“裸照”
·Windows Server 2003服务器群集创建和配
·exchange2k3全套官方资料
·双儿一周岁了。。。特殊的礼物来啦。。
·存储备份技术版块守则
·无盘技术交流区守则
·DOS命令基础大全之命令详解<作者吐血
·Windows XP 操作系统默认设置需要注意的