📄 e084c845e0d5001919beb9595aa95db7
字号:
/*
* Created on 2005-5-31
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package server;
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
import java.net.*;
import java.io.*;
import java.util.*;
class JabberThread extends Thread{
private int port = 1235;
ServerGUI serverGUI = null;
TCPThread tcpThread = null;
DatagramSocket receiveSocket = null;
DatagramPacket packetReceived = null;
Iterator iterSockets = null;
//为了给Client端发消息 :
OutputStream out = null;
PrintStream datumOut = null;
byte[] byteReceived = new byte[1024];
// int receivedSize;
InetAddress serverAddress;
JabberThread(ServerGUI serverGUI, TCPThread tcpThread ,int udpPort)
{
this.serverGUI = serverGUI;
this.tcpThread = tcpThread;
port = udpPort;
try
{
serverAddress = InetAddress.getByName(null);
} catch(UnknownHostException uhn)
{
}
try
{
receiveSocket = new DatagramSocket(serverGUI.udpPort);
//System.out.println(receiveSocket.getInetAddress().getCanonicalHostName());
} catch(SocketException se)
{
serverGUI.appendDisplayArea("无法打开DatagramSocket,无法接收消息,请确定端口可用,然后重新启动\n");
return ;
}
packetReceived = new DatagramPacket(byteReceived, 1024);
if (packetReceived == null)
serverGUI.appendDisplayArea("null\n");
}
public void run()
{
while(true)
{
try
{
receiveSocket.receive(packetReceived);
System.out.println(packetReceived.getLength());
serverGUI.appendDisplayArea("接到一个DatagramPacket\n");
} catch(IOException ioe)
{
serverGUI.appendDisplayArea("接收一个DatagramPacket时出现输入输出异常\n");
}
iterSockets = tcpThread.sockets.values().iterator();
if (iterSockets != null)
{
//debug:
System.out.println("iterSockets is not null");
while(iterSockets.hasNext())
{
//debug
System.out.println("iterSockets has next");
try
{
out = ((Socket)iterSockets.next()).getOutputStream();
} catch(IOException ioe)
{
serverGUI.appendDisplayArea("得到TCP连接输出时出现错误\n");
out = null;
}
if (out != null)
{
System.out.println("outputStream is not null");
datumOut = new PrintStream(out);
//datumOut.write(packetReceived.getData(), 0, packetReceived.getLength());
String temp = new String(byteReceived);
System.out.print(temp);
datumOut.println(temp);
System.out.println("to write(packetReceived.getData())");
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -