Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

和luster一起学习java编程(3)

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  和luster一起学习java编程(3)

  呵呵,和大家一起了解了一下关于线程的概念。本来接下来是看一些io类的,刚刚匆忙浏览了一下,发现没什么好玩的,就是简单的一些输入输出函数,以后要用的时候再自习看算了。

  于是我直接跳到了jave.net包里面的定义的类,看看有什么好玩的东西。:)

  当然是对socket编程很感兴趣罗,看了看类的结构,写了一个小程序来测试。下面是源码。是用UDP来发送数据的。


----------
发送方程序
使用方法:java Sender 1000 2000 
其中2000为接收方的udp端口号。
import java.net.*;
class Sender
{
static final int sendOnNewline = '
';
static final int end = -1;
public static void main(String args[])
  throws Exception
{
InetAddress iAddr = InetAddress.getLocalHost();
int sPort = Integer.parseInt(args[0]);
int rPort = Integer.parseInt(args[1]);
DatagramSocket sock = new DatagramSocket(sPort);
byte[] makeLine = new byte[80];
int inLine = 0;
int nextByte; 
while((nextByte=System.in.read())!=end)
{
switch(nextByte)
{
default:
makeLine[inLine++]=(byte)nextByte;
if(inLine

  接收方程序,

  使用方法是:java Receiver 2000 quit

  注意:当发送方发出了quit这个字符串之后,程序就会退出了。:)


import java.net.*;
class Receiver
{
public static void main(String args[])
  throws Exception
{
int rPort=Integer.parseInt(args[0]);
DatagramSocket sock = new DatagramSocket(rPort);
byte[] takeLine = new byte[80];
DatagramPacket p;
String killCommand = args[1];
String receiveString = "";
while(!receiveString.equals(killCommand))
{
p = new DatagramPacket(takeLine,takeLine.length);
sock.receive(p);
System.out.println(receiveString = new String(p.getData(),0,0,p.getLength()));
}
}
}

  ==============

  你运行试试看,再看看源程序,看看收发结构,很简单哦。

  欢迎和我讨论。

  luster@linuxaid.com.cn




 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:和luster一起学习java编程(2)   下一篇:和luster一起学习java编程(4)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号