求个程序代码!socket相关的! 是用TCP还是UDP?这和传送给单用户没太大区别,只要保存多个客户的ip和端口号即可,依次转发。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 UDP广播可以,不过他不一定要发送给所有用户,还是依次转发通用性好点 socket s = new socket()serversockets ss = new serversocket(); UDP的组播代码, 要用Applet实现package communicationclient;import java.awt.*;import java.awt.event.*;import java.applet.*;import javax.swing.*;import java.net.*;import java.io.*;/** * Title: 客户端UDP通讯Applet程序 * Description: 用于客户端,实现与服务器端UDP通讯 * Copyright: Copyright (c) 2002 * @version 1.0 */public class CommunicationClient extends Applet { boolean isStandalone = false; JLabel jLabel1 = new JLabel(); JTextArea jTextArea1 = new JTextArea(); JLabel jLabel2 = new JLabel(); JTextField jTextField1 = new JTextField(); private DatagramSocket sendSocket,receiveSocket;//声明发送数据报Socket和接收数据报Socket private DatagramPacket sendPacket,receivePacket;//声明发送数据报文包和接收数据报文包 /**Get a parameter value*/ public String getParameter(String key, String def) { return isStandalone ? System.getProperty(key, def) : (getParameter(key) != null ? getParameter(key) : def); } /**Construct the applet*/ public CommunicationClient() { } /**Initialize the applet*/ public void init() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } /**Component initialization*/ private void jbInit() throws Exception { jLabel1.setText("通讯记录:"); jLabel1.setBounds(new Rectangle(16, 9, 68, 27)); this.setLayout(null); jTextArea1.setText("你好!"); jTextArea1.setBounds(new Rectangle(15, 48, 349, 59)); jLabel2.setText("输入通讯内容:"); jLabel2.setBounds(new Rectangle(17, 125, 92, 37)); jTextField1.setText("通讯内容"); jTextField1.setBounds(new Rectangle(127, 129, 244, 31)); jTextField1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jTextField1_actionPerformed(e); } }); this.add(jLabel1, null); this.add(jTextArea1, null); this.add(jLabel2, null); this.add(jTextField1, null); } /**Start the applet*/ public void start() { waitForPackets(); } /**Stop the applet*/ public void stop() { } /**Destroy the applet*/ public void destroy() { } /**Get Applet information*/ public String getAppletInfo() { return "Applet Information"; } /**Get parameter info*/ public String[][] getParameterInfo() { return null; } /**方法waitForPacket用来监听来自于服务器的数据报,当获得数据报后,在文本显示区域显示出来*/ public void waitForPackets(){ try{ sendSocket=new DatagramSocket();//实例化一个发送数据报Socket对象 receiveSocket= new DatagramSocket(8001);//实例化一个接收数据报Socket对象,以8001为端口 } catch (SocketException e){//捕获异常 jTextArea1.append("不能打开数据报Socket,或数据报Socket无法与指定端口连接!"); } while (true){ try{ byte buf[]=new byte[100]; receivePacket=new DatagramPacket(buf,buf.length);//实例化一个接收数据报文包对象 receiveSocket.receive(receivePacket);//以receivePacket为参数,接收数据包 jTextArea1.append("\n服务器:\t"); byte[] data=receivePacket.getData(); String receivedString=new String(data); jTextArea1.append(receivedString);//将接收到的数据包中的数据显示出来 } catch(IOException e){ jTextArea1.append("网络通讯出现错误,问题在"+e.toString()); } } } /**Main method*/ public static void main(String[] args) { CommunicationClient applet = new CommunicationClient(); applet.isStandalone = true; Frame frame; frame = new Frame() { protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } public synchronized void setTitle(String title) { super.setTitle(title); enableEvents(AWTEvent.WINDOW_EVENT_MASK); } }; frame.setTitle("Applet Frame"); frame.add(applet, BorderLayout.CENTER); applet.init(); applet.start(); frame.setSize(400,320); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2); frame.setVisible(true); } void jTextField1_actionPerformed(ActionEvent e) { try{ jTextArea1.append("\n客户端:"); String string=jTextField1.getText(); jTextArea1.append(string); byte[] databyte=new byte[100]; string.getBytes(0,string.length(),databyte,0); sendPacket=new DatagramPacket(databyte,string.length(),InetAddress.getByName("202.112.88.31"),8000);//发送数据报,其中IP为主机服务器IP地址 sendSocket.send(sendPacket); } catch(IOException ioe){ jTextArea1.append("网络通讯出现错误,问题在"+ioe.toString()); } }} 求一个设计比较好得JDBC的代码! J2SE能开发出类似PP、风行、迅雷在线看视频功能??(急!急!) 求资源 web中嵌入MathType java中打印完一页时,怎么控制打印机走一页纸,有这样的API方法吗? word表格导入Oracle数据库或Excel表格带图片导入Oracle数据库 小弟求解!! 如何在JInternalFrame中创建一个模态的JDialog??? 遇到一个TCP通信的问题 帮忙忙吧 按钮事件 请问一个关于事件的问题!
serversockets ss = new serversocket();
package communicationclient;import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import java.net.*;
import java.io.*;/**
* Title: 客户端UDP通讯Applet程序
* Description: 用于客户端,实现与服务器端UDP通讯
* Copyright: Copyright (c) 2002
* @version 1.0
*/public class CommunicationClient extends Applet {
boolean isStandalone = false;
JLabel jLabel1 = new JLabel();
JTextArea jTextArea1 = new JTextArea();
JLabel jLabel2 = new JLabel();
JTextField jTextField1 = new JTextField();
private DatagramSocket sendSocket,receiveSocket;//声明发送数据报Socket和接收数据报Socket
private DatagramPacket sendPacket,receivePacket;//声明发送数据报文包和接收数据报文包 /**Get a parameter value*/
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
} /**Construct the applet*/
public CommunicationClient() {
}
/**Initialize the applet*/
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
/**Component initialization*/
private void jbInit() throws Exception {
jLabel1.setText("通讯记录:");
jLabel1.setBounds(new Rectangle(16, 9, 68, 27));
this.setLayout(null);
jTextArea1.setText("你好!");
jTextArea1.setBounds(new Rectangle(15, 48, 349, 59));
jLabel2.setText("输入通讯内容:");
jLabel2.setBounds(new Rectangle(17, 125, 92, 37));
jTextField1.setText("通讯内容");
jTextField1.setBounds(new Rectangle(127, 129, 244, 31));
jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jTextField1_actionPerformed(e);
}
});
this.add(jLabel1, null);
this.add(jTextArea1, null);
this.add(jLabel2, null);
this.add(jTextField1, null);
}
/**Start the applet*/
public void start() {
waitForPackets();
}
/**Stop the applet*/
public void stop() {
}
/**Destroy the applet*/
public void destroy() {
}
/**Get Applet information*/
public String getAppletInfo() {
return "Applet Information";
}
/**Get parameter info*/
public String[][] getParameterInfo() {
return null;
} /**方法waitForPacket用来监听来自于服务器的数据报,当获得数据报后,在文本显示区域显示出来*/
public void waitForPackets(){
try{
sendSocket=new DatagramSocket();//实例化一个发送数据报Socket对象
receiveSocket= new DatagramSocket(8001);//实例化一个接收数据报Socket对象,以8001为端口
}
catch (SocketException e){//捕获异常
jTextArea1.append("不能打开数据报Socket,或数据报Socket无法与指定端口连接!");
}
while (true){
try{
byte buf[]=new byte[100];
receivePacket=new DatagramPacket(buf,buf.length);//实例化一个接收数据报文包对象
receiveSocket.receive(receivePacket);//以receivePacket为参数,接收数据包
jTextArea1.append("\n服务器:\t");
byte[] data=receivePacket.getData();
String receivedString=new String(data);
jTextArea1.append(receivedString);//将接收到的数据包中的数据显示出来
}
catch(IOException e){
jTextArea1.append("网络通讯出现错误,问题在"+e.toString());
}
}
} /**Main method*/
public static void main(String[] args) {
CommunicationClient applet = new CommunicationClient();
applet.isStandalone = true;
Frame frame;
frame = new Frame() {
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
public synchronized void setTitle(String title) {
super.setTitle(title);
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
}
};
frame.setTitle("Applet Frame");
frame.add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
frame.setSize(400,320);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
frame.setVisible(true);
} void jTextField1_actionPerformed(ActionEvent e) {
try{
jTextArea1.append("\n客户端:");
String string=jTextField1.getText();
jTextArea1.append(string);
byte[] databyte=new byte[100];
string.getBytes(0,string.length(),databyte,0);
sendPacket=new DatagramPacket(databyte,string.length(),InetAddress.getByName("202.112.88.31"),8000);//发送数据报,其中IP为主机服务器IP地址
sendSocket.send(sendPacket);
}
catch(IOException ioe){
jTextArea1.append("网络通讯出现错误,问题在"+ioe.toString());
}
}
}