------- android培训、java培训、期待与您交流! ----------
一:
1.TCP传输:
tcp分客户端和服务端,
客户端对应的对象是Socket,服务端对应的对象是ServerSocket,
通过查阅socket对象,发现在该对象建立时,就可以去连接指定主机,
因为tcp是面向连接的,所以在建立socket服务时,就要有服务端存在,并连接成功,形成通路后,在该通道进行数据的传输。
2.网络文件复制(代码演示):
客户端:
import java.net.*;
import java.io.*;
public class SendFile {
/**
* 需求:将文件发送至服务端
*
* 流程:
* 1、建立socket连接 ,指定服务器端口10000
* 2、建立文件读取流 BufferedInputStream链接到文件
* 3、建立输出流链接到 socket 的getOutputStream中
* 4、读取文件 写入socket流中
* 5、建立输入流链接到socket 的getInputStream中,等待成功信息
*
*/
public void send()throws Exception{
Socket socket =
new Socket (InetAddress.getByName("192.168.1.5"),10000);
BufferedInputStream bis =
new BufferedInputStream(new FileInputStream("D:\\hello.txt"));
OutputStream socketOut = socket.getOutputStream();
byte[] buff = new byte[1024];
int len ;
while ( (len = bis.read(buff))!=-1)
{
socketOut.write(buff);
}
System.out.println("finished");
socket.shutdownOutput();
BufferedReader socketInput =
new BufferedReader( new InputStreamReader(socket.getInputStream()));
String s = socketInput.readLine();
System.out.println(s);
bis.close();
socket.close();
}
public static void main(String[] args) throws Exception {
SendFile s = new SendFile();
s.send();
}
}
服务器端:
import java.io.*;
import java.net.*;
public class ReceiveFile {
/**
* 创建一个ServerSocket服务,监听10000端口
* 创建BufferedOutputstream
* 获取一个socket流,
* 利用socket流中的InputStream创建一个InputStream
* 写入文件
* @throws Exception
*/
public void Receive() throws Exception{
ServerSocket serSocket = new ServerSocket(10000);
Socket socket = serSocket.accept();
BufferedOutputStream fileOut =
new BufferedOutputStream(new FileOutputStream("E:\\hello.txt"));
InputStream inSocket =
socket.getInputStream();
byte[] buf = new byte[1024];
int len =0;
System.out.println("Going to While");
while ( (len = inSocket.read(buf))!=-1)
{
System.out.println("inside while");
fileOut.write(buf, 0, len);
}
String s = "写入成功!";
System.out.println(s);
DataOutputStream socketOut = new DataOutputStream(socket.getOutputStream());
socketOut.writeBytes(s);
fileOut.close();
socket.close();
serSocket.close();
}
public static void main(String[] args) throws Exception {
ReceiveFile rec = new ReceiveFile();
rec.Receive();
}
}