越简单越好,网络编程简单理解就是两台计算机以某种方式相互通信。 java的sdk提供了相对简单的api来实现。 Soket就是其中之一。存在于java.net包里。
网络编程的基本模型就是C/S模型。 一个server建立好端口就在那监听消息,客户端也要知道server的具体位置(IP),然后往那里发送消息。 数据交换必然要用到I/O操作,无非就是借助缓冲读入写出。
上面两句就是建立缓冲并把原始的字节流转变为Unicode可以操作,而原始的字节流来源于Socket的两个方法,getInputStream()和getOutputStream()方,分别用来得到输入和输出,那么现在有了基本的模型和基本的操作工具,我们可以做一个简单的Socket例程了.
[b]server类:[/b]
[b]客户端:[/b]
网络编程的基本模型就是C/S模型。 一个server建立好端口就在那监听消息,客户端也要知道server的具体位置(IP),然后往那里发送消息。 数据交换必然要用到I/O操作,无非就是借助缓冲读入写出。
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out=new PrintWriter(server.getOutputStream());
上面两句就是建立缓冲并把原始的字节流转变为Unicode可以操作,而原始的字节流来源于Socket的两个方法,getInputStream()和getOutputStream()方,分别用来得到输入和输出,那么现在有了基本的模型和基本的操作工具,我们可以做一个简单的Socket例程了.
[b]server类:[/b]
package com.practice.soket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class SoketServer {
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(5678);
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 received...." + str);
out.flush();
if(str.equals("end"))
break;
}
client.close();
}
}
[b]客户端:[/b]
package com.practice.soket;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class ClientSoket{
static Socket server;
public static void main(String[] args)throws Exception{
server=new Socket(InetAddress.getLocalHost(),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();
if(str.equals("end")){
break;
}
System.out.println(in.readLine());
}
server.close();
}
}