基于TCP/IP协议的Socket网络编程

基于TCP/IP的Socket网络编程

TCP协议:它是一种面向连接的可靠协议。
特点:传输数据安全稳定,数据不会丢失,但是速度较慢。
TCP 协议类似于使用手机打电话,可以保证把信息传递给别人

服务器端:
(1)创建服务器套接字
(2)等待客户端连接请求,一旦接收请求,将和客户端建立连接,返回一个Socket套接字
(3)使用套接字获取输入流和输出流
(4)通信:使用输入流读取接收到的信息,使用输出流写发送的信息。
(5)关闭Socket套接字
(6)关闭服务器套接字

package com.socket;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class SocketServer {
	public static void main(String[] args) {

		try {
//			(1)创建服务器套接字,后面的“8888”为端口号,客户端需要知道这个端口才能进行请求
			ServerSocket ss = new ServerSocket(8888);
			
//			(2)等待客户端连接请求,一旦接收请求,将和客户端建立连接,返回一个Socket套接字
			Socket socket = ss.accept();
			
//			(3)使用套接字获取输入流和输出流对象
			InputStream input = socket.getInputStream();
			
//			(4)通信:使用输入流读取接收到的信息,使用输出流写发送的信息。
			byte [] b = new byte[1024];
			int i= input.read(b);
			System.out.println(new String(b));
			
			
			input.close();
//			(5)关闭Socket套接字
			socket.close();
			
//			(6)关闭服务器套接字
			ss.close();
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

客户端:
(1)创建套接字,向服务器发送连接请求(需要服务器的IP和端口号),和服务器建立连接。
(2)使用套接字获取输入流和输出流
(3)通信:使用输入流读取接收到的信息,使用输出流写发送的信息。
(4)关闭Socket套接字

package com.socket;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * TCP/IP通信
 *
 */
public class SocketClient {
	public static void main(String[] args) {
		try {
//			(1)创建套接字,向服务器发送连接请求(需要服务器的IP和端口号),和服务器建立连接。
			Socket socket = new Socket("localhost" , 8888);
			
//			(2)使用套接字获取输入流和输出流对象
			OutputStream out = socket.getOutputStream();
			
//			(3)通信:使用输入流读取接收到的信息,使用输出流写发送的信息。
			out.write("你好,server".getBytes());
			
//			(4)关闭Socket套接字
			socket.close();
			
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
}


版权声明:本文为qq_45924373原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。