专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » javasocket编程: 3步学会Java Socket编程 »正文

javasocket编程: 3步学会Java Socket编程

来源: 发布时间:星期六, 2009年2月7日 浏览:0次 评论:0
    第步 充分理解Socket

    1.什么是

    所谓通常也称作"套接字"用于描述IP地址和端口个通信链句柄应用通常通过"套接字"向网络发出请求或者应答网络请求

    以J2SDK-1.3为例Socket和ServerSocket类库位于java.net包中ServerSocket用于服务器端Socket是建立网络连接时使用在连接成功时应用两端都会产生个Socket例子操作这个例子完成所需会话对于个网络连接来说套接字是平等并没有差别在服务器端或在客户端而产生区别级别不管是Socket还是ServerSocket它们工作都是通过SocketImpl类及其子类完成

    重要Socket API:

    java.net.Socket继承于java.lang.Object有 8个构造器其思路方法并不多下面介绍使用最频繁 3个思路方法其它思路方法大家可以见JDK-1.3文档

    .Accept思路方法用于产生"阻塞"直到接受到个连接并且返回个客户端Socket对象例子"阻塞"是个术语它使运行暂时"停留"在这个地方直到个会话产生然后继续;通常"阻塞"是由循环产生

    .getInputStream思路方法获得网络连接输入同时返回个IutputStream对象例子

    .getOutputStream思路方法连接端将得到输入同时返回个OutputStream对象例子

    注意:其中getInputStream和getOutputStream思路方法均会产生个IOException它必须被捕获它们返回流对象通常都会被另个流对象使用

    2.如何开发个Server-Client模型

    开发原理:

    服务器使用ServerSocket监听指定端口端口可以随意指定(由于1024以下端口通常属于保留端口些操作系统中不可以随意使用所以建议使用大于1024端口)等待客户连接请求客户连接后会话产生;在完成会话后关闭连接

    客户端使用Socket对网络上某个服务器个端口发出连接请求旦连接成功打开会话;会话完成后关闭Socket客户端不需要指定打开端口通常临时、动态分配个1024以上端口

{建立服务器} import java.net.*; import java.io.*; public Server { private ServerSocket ss; private Socket ; private BufferedReader in; private PrWriter out; public Server { try { ss = ServerSocket(10000); while (true) { = ss.accept; in = BufferedReader( InputStreamReader(.getInputStream)); out = PrWriter(.getOutputStream,true); String line = in.readLine; out.prln("you input is :" + line); out.close; in.close; .close; } ss.close; } catch (IOException e) {} } public void (String args) { Server; } }



    这个建立了个服务器直监听10000端口等待用户连接在建立连接后给客户端返回段信息然后结束会话这个次只能接受个客户连接

{建立客户端} import java.io.*; import java.net.*; public Client { Socket ; BufferedReader in; PrWriter out; public Client { try { = Socket("xxx.xxx.xxx.xxx", 10000); in = BufferedReader( InputStreamReader(.getInputStream)); out = PrWriter(.getOutputStream,true); BufferedReader line = BufferedReader( InputStreamReader(.in)); out.prln(line.readLine); line.close; out.close; in.close; .close; } catch (IOException e) {} } public void (String args) { Client; } }



    这个客户端连接到地址为xxx.xxx.xxx.xxx服务器端口为10000并从键盘输入行信息发送到服务器然后接受服务器返回信息最后结束会话


="xspace-totlerecord">3="xspace-totlepages">1/3="xspace-current">123>
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: