一、socket概述
所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口。
套接字是通信的基石,是支持TCP/IP协议的路通信的基本操作单元。可以将套接字看作不同主机间的进程进行双间通信的端点,它构成了单个主机内及整个网络间的编程界面。套接字存在于通信域中,通信域是为了处理一般的线程通过套接字通信而引进的一种抽象概念。套接字通常和同一个域中的套接字交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序),各种进程使用这个相同的域互相之间用Internet协议簇来进行通信。
——摘自《百度百科》
二、原理
socket文件传输主要有两个过程,即建立链接和文件传输。文件传输则是基于数据流的形式。
三、代码编写
1.客户端
public class Demo61 {
public static void main(String[] args) throws Exception{
Socket soc = new Socket("127.0.0.1",9000);
OutputStream ost = soc.getOutputStream();
String str = "但使龙城飞将在";
ost.write(str.getBytes());
soc.close();
}
}
2.服务器端
public class Demo6 {
public static void main(String[] args) throws Exception{
ServerSocket ss = new ServerSocket(9000);
Socket s = ss.accept();
InputStream is = s.getInputStream();
Scanner sc = new Scanner(is);
System.out.println(sc.next());
ss.close();
s.close();
}
}
四、运行
运行时需要先开启服务端, 再开启客户端,此时,服务器端就能收到客户端发送的内容了。