简单的一个客户端和服务器的搭建和交流

简单的一个服务器和客户端的交流实现,用网络编程的思想。还有之前的那些流的知识,话不多说,开始上代码

注意;在自己的电脑上进行测试的时候,你的先开服务器,再开启客户端

服务器如下:利用了tcp协议

package cn.kgc.basic.tcp;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 基于TCP协议进行的网络编程:
 * 服务端
 * @author 92126
 *
 */
public class TCPServer {
	public static void main(String[] args) {
		ServerSocket serverSocket =null;
		Socket clientScoket = null;
		InputStream is = null;
		BufferedReader br = null;
		OutputStream os = null;
		//----------接受客户端的请求----------------
		try {
			//1.指定端口号,创建serverSocke对象
			 serverSocket = new ServerSocket(8080);
			//2.开启服务端来监听服务端的请求
			 clientScoket = serverSocket.accept();
			//3.调用输入流来读取客户端的信息
			 is = clientScoket.getInputStream();
			//4.为了读取的方便,讲流转换成高效字符流
			 br = new BufferedReader(new InputStreamReader(is));
			System.out.println("客户端的请求信息为:");
			String str = null;
			while((str=br.readLine())!=null) {
				System.out.println(str);
			}
			
			//-----------给客户端的相应--------------------
			clientScoket.shutdownInput();
			 os = clientScoket.getOutputStream();
			os.write("您的信息,服务端已经成功的接受,".getBytes());
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			//进行关流,先开的后关
			try {
				if(os!=null) {
					os.close();
				}
				if(br!=null) {
					br.close();
				}
				if(is!=null) {
					is.close();
				}
				if(clientScoket!=null) {
					clientScoket.close();
				}
				if(serverSocket!=null) {
					serverSocket.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		
	}

}

客户端如下:

package cn.kgc.basic.tcp;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * 基于TCP进行Socket编程:客户端
 * @author 92126
 *
 */
public class TCPClient {
	@SuppressWarnings("resource")
	public static void main(String[] args) {
		Socket socket = null;
		OutputStream os =null;
		InputStream is =null;
		BufferedReader br =null;
		//*-*-----------发送请求---------------
		try {
			//1.指定服务器的端口和IP
			 socket = new Socket("localhost", 8080);
			//2.获取输出流输出信息
			 os = socket.getOutputStream();
			os.write("土豆土豆,我是地瓜,收到回答".getBytes());
			
			//---------------接受响应---------------------
			socket.shutdownOutput();
			
			 is = socket.getInputStream();
			 br = new BufferedReader(new InputStreamReader(is));
			System.out.println("服务器的相应如下:");
			String str =null;
			while((str = br.readLine())!=null) {
				System.out.println(str);
			}
		
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				br.close();
				is.close();
				os.close();
				socket.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

}

猜你喜欢

转载自blog.csdn.net/weixin_44614066/article/details/88543117