服务端
创建服务器 监听客户连接 接收文件 返回提示信息
package test02;
import java. io. FileOutputStream;
import java. io. InputStream;
import java. io. OutputStream;
import java. net. ServerSocket;
import java. net. Socket;
import java. io. File;
public class TcpServerDemo {
public static void main ( String[ ] args) {
try {
ServerSocket serverSocket= new ServerSocket ( 9999 ) ;
Socket socket= serverSocket. accept ( ) ;
InputStream is= socket. getInputStream ( ) ;
File f= new File ( "E:/b.txt" ) ;
FileOutputStream fos= new FileOutputStream ( f) ;
byte [ ] buffer= new byte [ 1024 ] ;
int len;
while ( ( len= is. read ( buffer) ) != - 1 ) {
fos. write ( buffer, 0 , len) ;
}
OutputStream os= socket. getOutputStream ( ) ;
os. write ( "文件上传完毕" . getBytes ( ) ) ;
os. close ( ) ;
fos. close ( ) ;
is. close ( ) ;
socket. close ( ) ;
serverSocket. close ( ) ;
} catch ( Exception e) {
}
}
}
客户端
获取服务器IP和端口号 创建socket连接 上传文件 通知服务器上传完毕 接收提示信息
package test02;
import java. io. *;
import java. net. InetAddress;
import java. net. Socket;
public class TcpClientDemo {
public static void main ( String[ ] args) {
try {
InetAddress serverIP = InetAddress. getByName ( "127.0.0.1" ) ;
int port = 9999 ;
Socket socket= new Socket ( serverIP, port) ;
OutputStream os= socket. getOutputStream ( ) ;
File f= new File ( "E:/a.txt" ) ;
FileInputStream fis= new FileInputStream ( f) ;
byte [ ] buffer= new byte [ 1024 ] ;
int len;
while ( ( len= fis. read ( buffer) ) != - 1 ) {
os. write ( buffer, 0 , len) ;
}
socket. shutdownOutput ( ) ;
InputStream is= socket. getInputStream ( ) ;
ByteArrayOutputStream baos= new ByteArrayOutputStream ( ) ;
byte [ ] buffer2= new byte [ 1024 ] ;
int len2;
while ( ( len2= is. read ( buffer2) ) != - 1 ) {
baos. write ( buffer2, 0 , len2) ;
}
System. out. println ( baos. toString ( ) ) ;
fis. close ( ) ;
os. close ( ) ;
socket. close ( ) ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
}
}
}