1. TCP对话
客户端代码:
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) {
InetAddress inetAddress = null;
Socket socket = null;
OutputStream output = null;
try {
inetAddress = InetAddress.getByName("127.0.0.1");
int port = 49153;
socket = new Socket(inetAddress, port);
output = socket.getOutputStream();
output.write(("client sends messege to the server " + inetAddress + " " + port).getBytes());
} catch (Exception e) {
throw new RuntimeException(e);
}finally {
if(output!=null){
try {
output.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
if(socket!=null){
try {
socket.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}
}
服务器端代码:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
InputStream input = null;
ByteArrayOutputStream output = null;
try {
serverSocket = new ServerSocket(49153);
while(true){
socket = serverSocket.accept();
input = socket.getInputStream();
output = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while((length = input.read(buffer) )!=-1){
output.write(buffer,0,length);
}
System.out.println(output.toString());
}
} catch (IOException e) {
throw new RuntimeException(e);
}finally {
if(output!=null) {
try {
output.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
if(input!=null) {
try {
input.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
if(socket!=null) {
try {
socket.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
if(serverSocket!=null) {
try {
serverSocket.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}
}
2.TCP上传文件
客户端代码:
package net;
import java.io.*;
import java.net.Socket;
public class Client2 {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1", 10001);
OutputStream outputStream = socket.getOutputStream();
FileInputStream fileInputStream = new FileInputStream(new File("a.jpg"));
byte[] buffer = new byte[10];
int len;
while((len=fileInputStream.read(buffer))!=-1){
outputStream.write(buffer,0,len);
}
socket.shutdownOutput();
InputStream inputStream = socket.getInputStream();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
while((len=inputStream.read(buffer))!=-1){
byteArrayOutputStream.write(buffer,0,len);
}
System.out.println(byteArrayOutputStream.toString());
byteArrayOutputStream.close();
inputStream.close();
fileInputStream.close();
outputStream.close();
socket.close();
}
}
服务器端代码:
package net;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server2 {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(10001);
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
FileOutputStream fileOutputStream = new FileOutputStream("new1.jpg");
byte[] buffer = new byte[1024];
int len;
while((len=inputStream.read(buffer))!=-1){
fileOutputStream.write(buffer,0,len);
}
OutputStream outputStream = socket.getOutputStream();
outputStream.write("The server has received the image".getBytes());
outputStream.close();
fileOutputStream.close();
inputStream.close();
socket.close();
serverSocket.close();
}
}