发送消息
server
package com.llt.lesson02;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServer {
public static void main(String[] args) {
//创建地址
ServerSocket serverSocket = null;
ByteArrayOutputStream bos = null;
Socket accept = null;
InputStream inputStream = null;
try {
serverSocket = new ServerSocket(9999);
//接收消息
accept = serverSocket.accept();
inputStream = accept.getInputStream();
//管道流接收
bos = new ByteArrayOutputStream();
byte[] by = new byte[1024];
int len;
while ((len=inputStream.read(by))!=-1){
bos.write(by,0,len);
}
System.out.println(bos.toString());
} catch (IOException e) {
e.printStackTrace();
}finally {
//关闭流
try {
if( bos != null){
bos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
if( inputStream != null){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if( accept != null){
try {
accept.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if( serverSocket != null){
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
client
package com.llt.lesson02;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class TcpClient {
public static void main(String[] args) {
//创建连接容器
InetAddress byName;
Socket socket = null;
OutputStream outputStream=null;
try {
byName = InetAddress.getByName("127.0.0.1");
int prot = 9999;
//创建socket 连接
socket = new Socket(byName,prot);
//发送消息 io流
outputStream = socket.getOutputStream();
outputStream.write("你好我发送消息了".getBytes());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (outputStream!=null){
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
文件上传
client
package com.llt.lesson02;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class TcpClient02 {
public static void main(String[] args) throws Exception {
Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9999);
//创建输出流
OutputStream outputStream = socket.getOutputStream();
//读取文件
FileInputStream fileInputStream = new FileInputStream("debug.log");
//写出文件
byte[] bytes = new byte[1024];
int len;
while ((len=fileInputStream.read(bytes))!=-1){
outputStream.write(bytes,0,len);
}
socket.shutdownOutput(); //我发送完毕
//接手服务器发送的消息
InputStream inputStream = socket.getInputStream();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int len2;
byte[] bytes2 = new byte[1024];
while ((len2=inputStream.read(bytes2))!=-1){
byteArrayOutputStream.write(bytes2,0,len2);
}
System.out.println(byteArrayOutputStream.toString());
inputStream.close();
byteArrayOutputStream.close();
fileInputStream.close();
outputStream.close();
socket.close();
}
}
server
package com.llt.lesson02;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServer02 {
public static void main(String[] args) throws IOException {
//创建地址
ServerSocket serverSocket = null;
Socket accept = null;
InputStream inputStream = null;
serverSocket = new ServerSocket(9999);
//监听客户端连接
accept = serverSocket.accept();
//获取输入流
inputStream = accept.getInputStream();
//文件输出
FileOutputStream fos = new FileOutputStream("let.log");
byte[] by = new byte[1024];
int len;
while ((len=inputStream.read(by))!=-1){
fos.write(by,0,len);
}
//通知客户端我接好了
OutputStream outputStream = accept.getOutputStream();
outputStream.write("我接收ok".getBytes());
fos.close();
inputStream.close();
accept.close();
serverSocket.close();
}
}