1.客户端:代码:
package sockTest;
import java.io.*;
import java.net.Socket;
public class TCPC {
public static void main(String[] args) throws IOException, InterruptedException {
Socket socket=new Socket("127.0.0.1",6666);
OutputStream outputStream = socket.getOutputStream();
//想服务器端传输数据
FileInputStream bread=new FileInputStream("E:\\5.png");
byte [] bytes=new byte[100];
int length=0;
while ((length=bread.read(bytes))!=-1){
outputStream.write(bytes,0,length);
}
socket.shutdownOutput();//关闭输出流让服务器说话
InputStream inputStream = socket.getInputStream();
String s;
while ((length=inputStream.read(bytes))!=-1){
s=new String(bytes,0,length);
System.out.println(s);//服务区已结束
}
bread.close();
outputStream.close();
socket.close();
}
}
2.服务器端:
package sockTest;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPS {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket=new ServerSocket(6666);
Socket accept = serverSocket.accept();
//获取客户端传输的数据
InputStream onlineRead= accept.getInputStream();
byte[] bytes=new byte[10];
int length=-1;
//写到本地
File file=new File("E:\\10.png");
FileOutputStream bwrite=new FileOutputStream(file);
while ((length=onlineRead.read(bytes))!=-1){
bwrite.write(bytes,0,length);
}
accept.getOutputStream().write("服务器端已接受".getBytes());
System.out.println("2fffff");
onlineRead.close();
bwrite.close();
serverSocket.close();
}
}
2.shutdownOutpu就是暂时关闭流通道,然后把数据发送出去.