java socket采用TCP/UDP协议,是服务器和客户端远程通信的基础。我们的项目中用到了这个东西,
它无疑是十分重要的!
这些是我们从网上参考的,可以进行客户端向服务端发送单条信息的代码,在这个例子中,多个客户端可以连接服务端。
以下是客户端的代码:
package testsocket2;
import java.net.*;
import java.io.*;
//建立客户端
public class Client {
static Socket server;
public static void main(String[] args)throws Exception{
server = new Socket(InetAddress.getLocalHost(),5678);//连接到本机且通信端口是5678,这就是一个连接
BufferedReader in = new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out = new PrintWriter(server.getOutputStream());
BufferedReader wt = new BufferedReader(new InputStreamReader(System.in));
while(true)
{
String str = wt.readLine();
out.println(str);
out.flush();
System.out.println(in.readLine());
if(str.equals("End"))
{
break;
}
}
//server.close();结束服务器!
}
}
以下是服务端的代码,这里实现了多线程。
package testsocket;
import java.net.*;
import java.io.*;
public class multiserver extends Thread{
private Socket client;
private int x = 0;
public multiserver(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();
x++;
System.out.print("接收到的第");
System.out.print(x);
System.out.print("个是:");
//System.out.println(":");
System.out.println(str);
out.println("the server has received:"+str);//返回到客户端
out.flush();
if(str.equals("end"))
{
out.println("已经断开和服务器端的链接");
break;
}
}
client.close();
}
catch(IOException e)
{
}
finally{
}
}
public static void main(String[] args)throws IOException{
ServerSocket server = new ServerSocket(5678);//服务器监听5678端口
while(true)
{
multiserver mu = new multiserver(server.accept());
mu.start();
}
}
}
这些还要慢慢看懂,以后慢慢提高姿势水平!