1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import javax.swing.JPanel;
//import Board.moves;
public class ClientReception extends JPanel implements Runnable
{
DatagramSocket socket;
// byte[] result=new byte [2];
String res;
@Override
public void run()
{
DatagramSocket serverSocket = null;
//this.addKeyListener(new moves());
//this.setFocusable(true);
try {
serverSocket = new DatagramSocket(9876);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
boolean bye=false;
while(true) //instead of c i want to use true
{
int avcX=animation.board.p.getTileX();
int avcY=animation.board.p.getTileY();;
byte[] receivebuffer = new byte[1024];
byte[] sendbuffer = new byte[1024];
DatagramPacket recvdpkt = new DatagramPacket(receivebuffer, receivebuffer.length);
try {
serverSocket.receive(recvdpkt);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
InetAddress IP = recvdpkt.getAddress();
int portno = recvdpkt.getPort();
String clientdata = new String(recvdpkt.getData());
String [] Parts = clientdata.split(" ");
System.out.println("\nClient : "+ Parts[0]+" part2-> "+Parts[1]);
System.out.print("\nServer : ");
BufferedReader serverRead = new BufferedReader(new InputStreamReader (System.in) );
String serverdata = Integer.toString(avcX);
String s2 = Integer.toString(avcY);
String res =avcX+" "+avcY;
sendbuffer = res.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendbuffer, sendbuffer.length, IP,portno);
try {
serverSocket.send(sendPacket);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//here the check condition for serverdata which must be bye
if(serverdata.equalsIgnoreCase("bye"))
{
System.out.println("connection ended by server");
break;
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
serverSocket.close();
} |
Partager