和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)
【文章评论】
【收藏本文】
【推荐好友】
【打印本文】
【我要投稿】 【论坛讨论】