1.TCP和UDP协议
TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。
2.Socket
简单的来说 Socket=ip+端口号, 通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。
3.Tcp协议实现客户端服务端通信
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = null;
socket = new Socket("127.0.0.1", 9999);//建立Socket
System.out.println("input...");
//获取输入
BufferedReader input = new BufferedReader(new InputStreamReader(
System.in));
String val = input.readLine();
// System.out.println(val);
//获得socket的输出流,并将获得的数据写入
OutputStream out = socket.getOutputStream();
out.write(val.getBytes());
out.flush();//刷新数据流
//获取输入流,获取服务端返回的数据
InputStream in = socket.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
String msg = new String(buf,0,len);
System.out.println("msg from server:"+msg);
//关闭资源
out.close();
socket.close();
}
}
class Server {
public static void main(String[] args) throws IOException {
//坚挺9999端口
ServerSocket server = new ServerSocket(9999);
Socket socket = server.accept();//获得客户端对象
InputStream in = socket.getInputStream();//获得输入流,
//取出输入流的数据
byte[] buf = new byte[1024];
int len = in.read(buf);
String val = new String(buf,0,len);
System.out.println("val="+val);
//反转
String temp="";
for(int i= val.length()-1;i>=0;i--){
temp=temp+String.valueOf(val.charAt(i));
}
//获取输出流,将数据写入
OutputStream out = socket.getOutputStream();
out.write(temp.getBytes());
out.flush();
socket.close();
server.close();
}
}
}