网络:指的是将物理上分离的计算机通过连接形成的布局,而网络编程指的是实现网络的通讯操作,而在实际的工作之中网络编程分为两类:
· C/S结构(Client / Server):类似于QQ,需要编写两套程序,一套是服务器端程序,另外一套是客户端程序,而在进行维护的时候也需要维护两套程序,C/S使用专署的协议,所以安全性较高;
· B/S结构(Browse/Server):利用浏览器实现客户端功能,开发者只需要开发出服务器端一套程序即可,维护的时候也只需要维护一套程序,B/S结构一般都使用公共的通讯协议(HTTP),所以安全性较差。
在C/S开发之中也分为两种:TCP(可靠的传输)、UDP(数据报的传输)。今天的内容主要以TCP程序为主,而这个就是Socket程序。
服务端:
public class Server {
public static void main(String[] args) {
try {
ServerSocket server=new ServerSocket(10010);
Socket socket=server.accept();
try {
DataInputStream dis=new DataInputStream(socket.getInputStream());//得到高级输入流
DataOutputStream dos=new DataOutputStream(socket.getOutputStream());//得到高级输出流
// String get="";
String give="";
Scanner scanner=new Scanner(System.in);
while(true){
System.out.println("傻毕说:"+dis.readUTF());//得到客户端的消息
give=scanner.nextLine();
dos.writeUTF(give); //给客户端发消息
}
} finally{
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:
public class Client {
public static void main(String[] args) {
try {
Socket client=new Socket("192.168.100.134",10010);
try{
DataOutputStream dos=new DataOutputStream(client.getOutputStream());//得到输出流
DataInputStream dis=new DataInputStream(client.getInputStream());//得到输入流
String give="";
Scanner scanner=new Scanner(System.in);
while(true){
give=scanner.nextLine();
dos.writeUTF(give); //客户端发消息
System.out.println("服务器说:"+dis.readUTF());
}
}finally{
client.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}