java 服务端问题
如何使服务器与多个客户端收发消息
补充:使用SOCKET方法
追问:这个是单个客户端的吧?
如何使服务器与多个客户端收发消息
补充:使用SOCKET方法
追问:这个是单个客户端的吧?
答案://服务端(调用具体的处理线程完成处理)package com.socket.multiserver;
import java.io.*;
import java.net.*;
import com.socket.multiserver.ChildTh;public class MyMultiServer {
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(5678);
while (true){
Socket client=server.accept();
ChildTh child=new ChildTh(client);//用socket实例初始化具体的处理线程对象
//使用Runnable接口和使用extends Thread的区别:
// 如果是使用Runnable接口,需要这么写:
new Thread(child).start();
//注意:不能写成:child.run();
// 如果使用extends Thread,只需要child.start()就可以,因为start()是Thread的方法
}
}
}============================================================
//处理线程类:
package com.socket.multiserver;
import java.io.*;
import java.net.*;public class ChildTh implements Runnable{
private Socket client;
public ChildTh(Socket client){
this.client=client;
}
public void run(){
try{
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter ut=new PrintWriter(client.getOutputStream());
while(true){
String str=in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if(str.equals("end"))
break;
}
client.close();
}catch(Exception e){
System.out.println("error in the close the socket!");
e.printStackTrace();
}
finally{
}
}
}
===========================================================
//客户端
package com.socket.multiserver;
import java.net.*;
import java.io.*;public class MyMultiClient{
static Socket client;
public static void main(String[] args)throws Exception{
client=new Socket(InetAddress.getLocalHost(),5678);
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter ut=new PrintWriter(client.getOutputStream());
//从标准输入接收数据
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
while(true){
String str=wt.readLine();
//String str = "jonathan";
out.println(str);
out.flush();
if(str.equals("end")){
break;
}
System.out.println(in.readLine());
}
client.close();
}
}http://www.51testing.com/?uid-202848-action-viewspace-itemid-122580
package com.net.data;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketAddress;public class Receive {
public static void main(String[] args) {
try {
// 确定接受方的IP和端口号,IP地址为本地机器地址
InetAddress ip = InetAddress.getLocalHost();
int port = 8080;
// 创建接收方的套接字,并制定端口号和IP地址
DatagramSocket getSocket = new DatagramSocket(port, ip);
&nbs
上一个:java深度编程
下一个:新手如何学好java?