服务器端
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(8889);
while (true) {
Socket socket = ss.accept();
System.out.println("服务器端:" + socket);
System.out.println("服务器端读取数据");
InputStream is = socket.getInputStream();
byte[] bytes = new byte[1024];
int len = 0;
String str = null;
while ((len = is.read(bytes)) != -1) {
str = new String(bytes, 0, len);
System.out.println(str);
}
socket.shutdownInput();
OutputStream os = socket.getOutputStream();
os.write(("HELLO CLIENT,我收到了信息:" + str).getBytes());
System.out.println("服务端写出数据完毕!");
socket.shutdownOutput();
os.close();
is.close();
socket.close();
if (str.equals("end"))
break;
}
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
客户端
import java.io.IOException;
import java.io.InputStream;
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) {
try {
Socket socket=new Socket(InetAddress.getLocalHost(),8889);
System.out.println("客户端:"+socket);
String data="end";
OutputStream os = socket.getOutputStream();
os.write(data.getBytes());
System.out.println("客户端写出数据完毕!");
socket.shutdownOutput();
System.out.println("客户端器端读取数据");
InputStream is = socket.getInputStream();
byte[] bytes=new byte[1024];
int len=0;
String str=null;
while((len=is.read(bytes))!=-1)
{
str=new String(bytes,0,len);
System.out.println(str);
}
socket.shutdownInput();
is.close();
os.close();
socket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}