当前位置:  技术问答>java相关

请教java网络编程!!

    来源: 互联网  发布时间:2015-05-18

    本文导语:  我学习java有一段时间了,只是用jsp和servlet做了一个b/s的mis。 我感觉没有用到太多关于java的知识。   我想学习用java进行网络方面的编程,不知道重点应该学那方面的知识? 望各位大侠不吝赐教,我将不胜感激!! ...

我学习java有一段时间了,只是用jsp和servlet做了一个b/s的mis。
我感觉没有用到太多关于java的知识。
  我想学习用java进行网络方面的编程,不知道重点应该学那方面的知识?
望各位大侠不吝赐教,我将不胜感激!!
  谢谢!!!

|
我也是java 的初学者,我感觉顶楼的兄弟问的正是我想问的,
不过大家说的太笼统了,那位大哥能提供几个小例子或学习java 网络编程
的网址,那就更好了呀!

|
给一个很简单的socket通信:

Java中的网络编程是一个很重要的部分,也是其编程优越性的地方之一。在Java中有一个专门的Java.net类库来管理网络编程的有关方法。 
  下面先介绍在Java中怎样用socket进行客户与服务器通信。最后再介绍一个一个最简单的通话程序。 

一.怎样用socket进行客户与服务器通信 
  在Java中用socket进行客户/服务器之间的通信编程。Socket是两个实体之间进行通信的有效端点。通过socket可以获得源IP地址和源端口、终点IP地址和终点端口。用户可以将多个socket连入同一个端口,以便对于单个端口可以有多个连接。通过socket客户/服务器编程可以创建一个能被许多人使用的分布式程序,并且所有客户均可以用统一的前端进行工作,并与服务器进行通信。 
  要想与服务器通信必须具备三个条件:服务器程序、客户程序和连接它们的socket程序。这三个部分缺一不可。但是,客户与服务器之间的通信有很多的方式,其中另一个方法是把客户作为索取者,把服务器作为给予者。下面我们看一看Java的服务器编程。 
  在Java中,服务器有3个主要的功能: 
  1.在Java.net类库中通过构造一个ServerSocket类的实例使服务器能够检测到指定端口的信息。用ServerSocke中的accept()方法可以使服务器检测到指定端口的活动。另外,服务器还负责检测要求与它连接的客户。 
·Socket类的实例代表客户与服务器连接成功。通过编程可以使多个用户通过同一个端口与服务器相连,其中都是Socket 类的实例。 
  2.可以分别用Socket类的getInputStream()和getOutStream()方法来发送和捕捉数据。其使用方法如下: 

  try{ 
    ServerSocket myServerSocket=new ServerSocket(100); 
    Socket my100Socket=myServerSocket.accept(); 
  }catch(Exception e){} 

  在上面的代码中,首先构造一个ServerSocket类的实例,并传递给它一个整数作为服务器指定可以使用的给定端口,如下: 

  ServerSocket myServerSocket=new ServerSocket(100); 

  在Java程序中如果每次构造ServerSocket时都能保持捕捉异常事件,则就随时指定了准备使用的端口。下面的代码使用accept()方法来检测端口的活动。 

  Socket my100Socket=myServerSocket.accept(); 

  Accept()方法直到接收到用户的连接请求,才继续执行中断的执行程序。一旦客户的连接成功,my100Socket就代表该连接,并且可以发送和接收数据。 
最后,我们看一看客户是怎样请求连接的。其连接方法如下: 

  try{ 
    Socket mySocket=new Socket("www.cpcw.com",100); 
  }catch(Exception e ){} 

  通过上面的代码可能看出,也是通过Socket类来实现的。下面我们通过一个网络编程的实例来说明如何进行网络通信。 

二.一个最简单的通话程序 

通话器服务器: 
import java.net.*; 
import java.io.*; 
import java.lang.*; 

public class myserver{ 
public static void main(String args[]){ 
ServerSocket server; 
Socket socket; 
String s; 
InputStream Is; 
OutputStream Os; 
DataInputStream DIS; 
PrintStream PS; 

try{ 
//在端口4321注册服务 
server=new ServerSocket(4321); 
socket=server.accept();//监听窗口,等待连接 

System.out.println("server ok"); 
System.out.println("************************************************"); 
System.out.println(""); 

//获得对应Socket的输入/输出流 
Is=socket.getInputStream(); 
Os=socket.getOutputStream(); 
//建立数据流 
DIS=new DataInputStream(Is); 
PS=new PrintStream(Os); 
DataInputStream in=new DataInputStream(System.in); 
while(true){ 
System.out.println(""); 
System.out.println("please wait client's message..."); 
System.out.println(""); 
s=DIS.readLine(); //读入从client传来的字符串 
System.out.println("client said:"+s); //打印字符串 
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出 
System.out.print("you say:"); 
s=in.readLine(); //读取用户输入的字符串 
PS.println(s); //将读取得字符串传给client 
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出 



//关闭连接 
DIS.close(); //关闭数据输入流 
PS.close(); //关闭数据输出流 
Is.close(); //关闭输入流 
Os.close(); //关闭输出流 
socket.close(); //关闭sockey 

catch(Exception e){ 
System.out.println("Error:"+e); 





通话器客户端 
import java.net.*; 
import java.io.*; 
import java.lang.*; 

public class myclient{ 
public static void main(String args[]){ 
if (args.length

    
 
 

您可能感兴趣的文章:

  • 新手请教,linux网络编程。
  • 请教LINUX下的网络编程?
  • 菜鸟请教linux下的网络编程
  • 请教一个网络编程问题,accept函数的,在线等,急。。。
  • 请教linux下网络编程学习方法
  • 请教一个linux网络编程问题
  • 向高手请教linux网络编程的问题!
  • 请教关于LINUX的网络编程的问题
  • 请教各位一个关于linux网络编程的问题
  • 请教一个网络编程的问题
  • 请教看过stevens的unix网络编程的哥哥进来看看
  • 在java网络编程中,传递数据时,如何把二维数组从客户端传递到服务器端?请教大家,谢了
  • 请教:编译《unix网络编程(第2版)》出现下面的错误,谢谢!
  • 继续请教,网络编程问题,服务器端读取后文件里没数据? 大虾们看看。。在线等。
  • 请教大家一个问题,关于UNIX网络编程第16章非阻塞I/O中的一段代码
  • 请教终端编程&curses编程高手
  • 请教一个shell编程的问题,就是如何在shell编程中读一个文件的内容?谢谢啦!
  • 请教linux下的编程的选择:我听说有gtk+gnome的编程,也有kde里的 什么编程,到底应该选择哪个呢?好象一个是技术好一点,一个是市场占有
  • 请教:我想在unix编程领域发展,我应该在哪些方面努力?
  • 请教Linux下的编程工具
  • 请教一个多进程编程问题
  • 请教高手:如何学习内核编程?
  • 请教gcc编程 问题 关于调用中断 实现 图形模式
  • 请教linux下c编程的一个问题!
  • 急!!请教关于linux socket编程的一个问题!!
  • 请教:想学LINUX内核编程,请指点
  • 请教:Linux下的C++编程和Windows下有什么不同,要注意什么?
  • 请教一下哪里有UNIX下C编程标准下载?
  • 请教串口通信的编程
  • 请教一下:Linux下如何编程制作系统托盘
  • arm串口缓冲和c编程请教
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3