发个最简单却有用的java socket网络编程~
用作学习网络编程之用,程序实现的功能非常简单,即:从客户端传送两个int类型的数到服务端,服务端将两数的结果求和后发送回客户端。下面是客户端程序:
import java.io.*;
import java.net.*;
public class clients{
public static void main(String[] args) throws Exception{
Socket c = new Socket("localhost",1111);
PrintWriter out = new PrintWriter(c.getOutputStream(),true);
BufferedReader in = new BufferedReader(new InputStreamReader(c.getInputStream()));
BufferedReader in2 = new BufferedReader(new InputStreamReader(System.in));
System.out.println("please input 2 number to request!");
String s1 = in2.readLine();
String s2 = in2.readLine();
out.println(s1);
out.println(s2);
System.out.println(in.readLine());
out.close();
in.close();
c.close();
}
}
服务端程序:
import java.io.*;
import java.net.*;
public class server{
public static void main(String[] args) throws Exception{
ServerSocket serv = new ServerSocket(1111);
Socket c = serv.accept();
PrintWriter out = new PrintWriter(c.getOutputStream(),true);
BufferedReader in = new BufferedReader(new InputStreamReader(c.getInputStream()));
int x1 = Integer.parseInt(in.readLine());
int x2 = Integer.parseInt(in.readLine());
int x3 = x1+x2;
out.println("answer : "+x3);
in.close();
out.close();
c.close();
serv.close();
}
}
配置好JDK后在命令提示符编译好两个.java的文件生成.class文件,先运行c:\java server,再重新打开一个命令行窗口,运行c:\java clients。可以在clients里看到服务端求出的结果~~
这个小程序只是做为一个初级教学~~实际上socket编程也大概就是在此基础上扩展。比如实现一个自定义协议的C/S程序,可以在客户端将数据包序列化后传送给服务端,服务端依照协议解析数据包,取得相应的数据进行处理后再发回客户端~~ |