这是一个简单的JAVA服务器的例子。服务器用JAVA写的。客户端使用OC写的。
下面代码只能实现单客户的通信。
代码非常简单,如下:
import java.io.*;
import java.net.*;
public class Test {
public static void main(String[] args)throws IOException {
ServerSocket server=new ServerSocket(9999);
Socket client=server.accept();
BufferedReader in=
new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=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();
}
}
我想要实现多客户端的链接,要改成如下:
import java.io.*;
import java.net.*;
public class Test {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(9999);
while (true) {
Socket client = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = 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();
}
}
}
下面继续学习一个多线程的服务器的例子:
import java.net.*;
import java.io.*;
public class MultiUser extends Thread
{
private Socket client;
public MultiUser (Socket c)
{
this.client = c;
}
public void run()
{
try {
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream());
while (true) {
String str = in.readLine();
System.out.println(str+"fff777");
out.println("has receive");
out.flush();
if (str.equals("end"))
break;
}
client.close();
} catch (IOException e) {
// TODO: handle exception
}
}
public static void main(String[] args)throws IOException
{
ServerSocket server = new ServerSocket(9999);
while (true) {
MultiUser mu = new MultiUser(server.accept());
mu.start();
}
}
}