tcpip java 代码,java编写TCP方式的通信程序-JSP教程,Java技巧及代码

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通信程序的原理.

希望各位朋友批评.大家共同学习交流.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值