當前位置:編程學習大全網 - 編程語言 - 將client.java改寫成基於UDP協議的通信程序

將client.java改寫成基於UDP協議的通信程序

import java.net.*;

import java.io.*;

import java.awt.*;import java.awt.event.*;

import java.applet.*;

import java.util.*;

public class Computer_client extends Applet implements Runnable,ActionListener{

Button 計算;TextField 輸入三邊長度文本框,計算結果文本框;

//DataInputStream in=null; DataOutputStream out=null;

DatagramSocket socket;//用於發送/接收UDP;

DatagramPacket packet,packet1;//用於保存UDP內容;

byte[] buffer1=new byte[1000];

byte[] buffer2=new byte[1000];

Thread thread;

InetAddress addr;

public void init()

{ setLayout(new GridLayout(2,2));

Panel p1=new Panel(),p2=new Panel();

計算=new Button(" 計算");

輸入三邊長度文本框=new TextField(12);計算結果文本框=new TextField(12);

p1.add(new Label("輸入三角形三邊的長度,用逗號或空格分隔:"));

p1.add( 輸入三邊長度文本框);

p2.add(new Label("計算結果:"));p2.add(計算結果文本框);p2.add(計算);

計算.addActionListener(this);

add(p1);add(p2);

//this.setSize(200,300);

//this.setVisible(true);

}

public void start()

{

try

{ //和小程序所駐留的服務器建立UDP連接:

socket=new DatagramSocket(1234);

//packet=new DatagramPacket(buffer1,buffer1.length,"127.0.0.1",4331);

}

catch (IOException e){}

if(thread == null)

{ thread = new Thread(this);

thread.start();

}

}

public void run()

{ String s=null;

while(true)

{ try{

//thread.sleep(1000);//使線程等待壹段時間,以便服務器進行計算

packet1=new DatagramPacket(buffer2,buffer2.length);//生成接收的packet;

socket.receive(packet1);//接受服務器傳來的packet;

s=new String(packet1.getData());

if(s.equals(輸入三邊長度文本框.getText()))

計算結果文本框.setText("計算中,請再按次...");

else

計算結果文本框.setText(s);

}

catch(Exception e) {

計算結果文本框.setText("與服務器已斷開");

break;

}

}

}

public void actionPerformed(ActionEvent e)

{ if(e.getSource()==計算)

{ String s=輸入三邊長度文本框.getText();

if(!s.equals("")) //這個地方源程序有問題

{

buffer1=s.getBytes();

try{

addr=InetAddress.getLocalHost();

packet=new DatagramPacket(buffer1,buffer1.length,addr,4331);

socket.send(packet); //向服務器發送packet;

}

catch(Exception ee){System.out.println("向服務器發送數據報失敗!");};

}

else

計算結果文本框.setText("請輸入內容!");

}

}

}

  • 上一篇:想買個手機,想了解壹下下面幾種牌子好的地方,不好的地方,對比吧!諾基亞,步步高,索愛,摩托
  • 下一篇:這個動畫工作室的作品,可以打動我們所有人,但並不是皮克斯
  • copyright 2024編程學習大全網