电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> JSP教程
java编写TCP方式的通信程序-JSP教程,Java技巧及代码
作者:网友供稿 点击:26
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
 

java api中封装了大量的函数,供编写网络通信程序时使用.
这使得java在网络方面具有强大的功能.
用java编写tcp方式的通信程序比较简单,但也有一些问题需要注意.

以下为监听主程序,监听程序在发现客户端连接后,启动一个会话socket线程,以实现实时发送,接收信息
和多客户端同时工作.
import java.io.*;
import java.lang.*;
import java.net.serversocket;
import java.net.socket;
//主程序一直处于监听状态,有连接则启动一个线程进行处理,以实现多个客户端
public class listenserve
{
 private serversocket ss;
 private boolean listening=true;
 public listenserve()
 {
  init();//初始化
  lisn();//启动监听
 }
 public void init()
 {
  try
  {
   ss=new serversocket(10015,10);
  }
  catch(ioexception ie)
  {
    system.out.println("无法在10015端口监听");
    ie.printstacktrace();
  }
 }
 public void lisn()
 {
  try
  {
   while(listening)
    new thread(new dialogserve(ss.accept())).start();
    }
   catch(ioexception ie)
   {ie.printstacktrace();}
 }
 public static void main(string args[])
 {
  new listenserve();
 }
}

//以下为会话主程序
应该特别注意,如果客户端先关闭,会话socket中可能抛出socketexception:connection reset
这应该在程序中进行处理,这也是较易忽略的问题.
import java.io.*;
import java.lang.*;
import java.net.serversocket;
import java.net.socket;
import java.net.socketexception;
public class dialogserve implements runnable
{
 private socket s;
 private inputstream in;
 private string rev,temp;
 private byte b[];
 private int len;
 public dialogserve(socket ss)
 {
  s=ss;
  b=new byte[1024];
  try
  {
  in=s.getinputstream();
  }catch(ioexception ie)
  {
   ie.printstacktrace();
   }
  rev="";
 }
 public void run()
 {
  try
  {
   while(s.isconnected()==true)
   {
    if((len=in.read(b))!=-1)
    {
     temp=new string(b,0,len);
      rev+=temp;
      system.out.print(rev);
      temp=null;
      thread.sleep(1000);
    }
   }
   in.close();
   s.close();
   system.out.println("会话socket已断开!");
  }
  catch(socketexception se)
  {
   system.out.println("客户端已断开!");
    system.exit(0);
  }
  catch(ioexception io)
  {
   io.printstacktrace();
   system.exit(0);
  }
  catch(interruptedexception ire)
  { ire.printstacktrace();}
 }
}
//以下为客户端主程序
import java.io.*;
import java.net.socket;
import java.lang.*;
public class client
{
 private socket con;//客户端连接socket
 private outputstream out;
 private string sen;
 private byte b[];
 public client()
 {
  clientinit();
 }
 public void clientinit()
 {
  try
  {
   con=new socket("localhost",10015);
   con.setsotimeout(10000);
   b=new byte[1024];
   outputstream out=con.getoutputstream();
   sen="hello serve,以tcp方式发送数据!";
   b=sen.getbytes();
   out.write(b);
   out.flush();
   out.close();
   con.close();
  }
  catch(ioexception ie)
  {
   ie.tostring();
  }
 }
 public static void main(string args[])
 {
  new client();
 }
}
总的来说,以上所列代码较为简单,但已基本反映出java编写简单tcp通信程序的原理.
希望各位朋友批评.大家共同学习交流.



文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·IReport与JasperReport开发详解一-JSP教程,Java技巧及代码
·JSTL(JSP标准标签库)介绍-JSP教程,资料/其它
·格式化输入日期时间控件 JieFormattedDateBox-JSP教程,Java技巧及代码
·JSTL简化JSP编码-JSP教程,Jsp/Servlet
·JUnit和单元测试入门简介-JSP教程,Java技巧及代码
·从数据库中读取一个图片并保存为一个图片文件-JSP教程,数据库相关
·Java Swing入门基础-JSP教程,Java技巧及代码
·IntelliJ IDEA培训-JSP教程,Java技巧及代码
·通过JSP的预编译消除性能瓶颈-JSP教程,Jsp/Servlet
·Java中利用JMF编写摄像头拍照程序-JSP教程,Java技巧及代码

最新文章
·J2ME中的时间处理方法
·J2ME播放声音流程简介
·J2ME开发之手机键盘使用注意问题
·J2ME 记录管理存储
·MVC模式在j2me项目中的应用(二)
·MVC模式在j2me项目中的应用(一)
·J2ME中使用记录存储系统(RMS)存储信息
·J2ME与MIDP开发(1)
·用简单的J2ME程序测试MIDlet的生命周期
·JAVA基础:提升JSP应用程序的七大绝招


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号