socket初始学习

socket初步学习

所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
getInputStream方法获得网络连接输入,同时返回一个IutputStream对象实例
getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例

建立server端的socket监听是否有请求过来
 public static void doListener() {
		ServerSocket serverSocket = null;
		int port = 2011;//端口号
		try {
			serverSocket = new ServerSocket(port);
			//服务端不断的监听是否用请求过来
			while (true) {
				Socket client = serverSocket.accept();
				DataInputStream input;
				DataOutputStream output;
				input = new DataInputStream(client.getInputStream());
				output = new DataOutputStream(client.getOutputStream());
				//1.读取客户端的数据
				System.out.println(input.readUTF());
				//2.服务器返回数据给客户端
				output.writeUTF("success 次数"+i);
				
				output.close();
				input.close();
				client.close();
				i++;	
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
	


客户端代码 根据服务端ip和端口号进行连接 并发送数据和获取服务端回复的数据。
		public void sendSocketMsg() {
		Socket socket = null;
		try {
			//建立socket
			socket = new Socket("192.168.1.129",2011);//指定服务器IP和端口号 然后进行连接。
			//1.先发送数据到服务端
			DataOutputStream out = new DataOutputStream(
					socket.getOutputStream());// 输出流
			out.writeUTF(ed_msg.getText().toString());// 将数据写到服务端
			
			//2.接受服务端数据
			DataInputStream in = new DataInputStream(socket.getInputStream());// 输入流
			String res = in.readUTF();// 读取服务端的数据
			tv_servermsg.setText(res);
			
			out.close();
			in.close();
			socket.close();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}