编写服务器端程序:
1.创建一个服务器套接字(ServerSocket),绑定到指定端口;
2.调用accep方法,侦听来自客户端的请求,如果客户发出的请求,则接受连接,返回通信套接字Socket;
3.调用Socket的getInputStream和getOutputStream方法,获得输入/输出流,开始网络数据的接收和发送;
4.关闭通信套接字,关闭服务器套接字;
示例代码如下:
package a1;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerDemo {
/**
* 服务器端
*/
public static void main(String[] args) {
try {
//创建服务器套接字对象
ServerSocket ss = new ServerSocket(2222);
//监听客户端返回的套接字对象
Socket s = ss.accept();
//得到输出流对象
OutputStream os = s.getOutputStream();
OutputStreamWriter osWriter = new OutputStreamWriter(os);
osWriter.write("嘿~,宝贝,我是服务器端,欢迎你");
osWriter.close();
os.close();
s.close();
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
编写客户端程序:
1.创建一个套接字(Socket),向服务器监听端口发出请求;
2.与服务器正确连接后,调用Socket的getInputStream和getOutputStream方法,获得输入/输出流,开始网络数据的接受和发送;
3.关闭通信套接字;
示例代码如下:
package a1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
public class ClientDemo {
/**
* 客户端
*/
public static void main(String[] args) {
try {
//创建客户端套接字
Socket s = new Socket("192.168.0.106", 2222);
//得到客户端输入流
InputStream is = s.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String str = br.readLine();
br.close();
isr.close();
is.close();
s.close();
System.out.println(str);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}