tcp通讯的方式并使用socket建立客户端与服务器的通信的过程
2016-08-31 16:40
615 查看
tcp是一种通讯方式,也叫做tcp协议,是用来规范socket数据交互的。
socket是用来做通讯的,它的作用是发送数据和接受数据。举例说两个人打电话,电话就相当于是socket,而打电话的人相当于ip。
下面是一个java实现两个程序之间通信的例子:
服务端:
服务端要做的工作是:
1.创建服务端serversocket,指定端口号和ip地址;
2.调用accept()方法开始监听;
3.调用getInputStream()方法 获取输入流,读取客户端信息;
4.调用getOutputStream()方法获取输出流。响应客户端的请求;
5.别忘了关闭资源。
客户端:
客户端要做的工作是:
1.创建客户端Socket,指定服务器端口号和地址;
2.调用getOutputStream()方法获取输出流,向服务器端发送信息;
3.调用getInputStream()方法获取输入流,并读取服务器端的响应信息;
4.别忘了关闭资源。
socket是用来做通讯的,它的作用是发送数据和接受数据。举例说两个人打电话,电话就相当于是socket,而打电话的人相当于ip。
下面是一个java实现两个程序之间通信的例子:
服务端:
服务端要做的工作是:
1.创建服务端serversocket,指定端口号和ip地址;
2.调用accept()方法开始监听;
3.调用getInputStream()方法 获取输入流,读取客户端信息;
4.调用getOutputStream()方法获取输出流。响应客户端的请求;
5.别忘了关闭资源。
package zjyang.server; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class SocketServer { public static int port = 8888;//客户端端口号 public static void main(String[] args){ SocketServer socketServer = new SocketServer(); socketServer.start(); } public void start(){ try { //1.创建serversocket ServerSocket serverSocket = new ServerSocket(port); //2.调用accept()方法开始监听 Socket socket = serverSocket.accept(); //3. 获取输入流,读取客户端信息 InputStream is = socket.getInputStream();//字节输入流 InputStreamReader isr = new InputStreamReader(is);//将字节转换成字符 BufferedReader br = new BufferedReader(isr);//为输入流添加缓冲 String info = null; while((info = br.readLine()) != null)//循环读取客户端信息 { System.out.println("我是服务器,客户端说: "+info); } socket.shutdownInput();//关闭输入流, //4.获取输出流。响应客户端的请求 OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); pw.write("欢迎您!"); pw.flush();//刷新缓存 //5.关闭资源 pw.close(); os.close(); br.close(); isr.close(); is.close(); socket.close(); serverSocket.close(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } }
客户端:
客户端要做的工作是:
1.创建客户端Socket,指定服务器端口号和地址;
2.调用getOutputStream()方法获取输出流,向服务器端发送信息;
3.调用getInputStream()方法获取输入流,并读取服务器端的响应信息;
4.别忘了关闭资源。
package zjyang.client; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class SocketClient { public static void main(String[] args) { SocketClient socketClient = new SocketClient(); socketClient.start(); } private void start(){ try { //1.创建客户端Socket,指定服务器端口号和地址 Socket socket = new Socket("localhost",8888); //指定本地地址,端口号为8888 //2.获取输出流,向服务器端发送信息 OutputStream os = socket.getOutputStream();//字节输出流 PrintWriter pw = new PrintWriter(os);//将输出流包装为打印流 pw.write("用户名: admin;密码: 123 "); pw.flush(); socket.shutdownOutput(); //3.获取输入流,并读取服务器端的响应信息 InputStream is = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String info = null; while ((info = br.readLine()) != null) { System.out.println("我是客户端,服务器说: "+info); } //4.关闭资源 br.close(); is.close(); pw.close(); os.close(); socket.close(); } catch (UnknownHostException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } }
相关文章推荐
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)(解决不可连的问题,解决方案在最后面)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- 【转】Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通) .