/*
*
* 客户端发送信息给服务端,接收后并打印在控制台上,同时发送已收到信息给客户端
*/
//客户端
class client1 implements Runnable {
public void run() {
Socket socket = null;
OutputStream os = null;
InputStream is = null;
try {
socket = new Socket(InetAddress.getByName("127.0.0.1"), 8989);
os = socket.getOutputStream();
os.write("我是客户端1!!".getBytes());
// shutdownOutput():执行此方法显示的告诉服务端发送完毕
socket.shutdownOutput();
is = socket.getInputStream();
byte[] b = new byte[40];
int len;
while ((len = is.read(b)) != -1) {
String str = new String(b, 0, len);
System.out.println(str);
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (os != null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
//服务端
class server1 implements Runnable {
public void run() {
ServerSocket ss = null;
Socket s = null;
InputStream is = null;
OutputStream os = null;
try {
ss = new ServerSocket(8989);
s = ss.accept();
is = s.getInputStream();
byte[] b = new byte[40];
int len;
while ((len = is.read(b)) != -1) {
String str = new String(b, 0, len);
//服务端接收并打印
System.out.println("客户端发来: " + str);
}
os = s.getOutputStream();
os.write("我是服务端:我已收到!".getBytes());
} catch (IOException e) {
e.printStackTrace();
} finally {
if (os != null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (s != null) {
try {
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (ss != null) {
try {
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
public class TestTCP2 {
public static void main(String[] args) {
new Thread(new server1()).start();
new Thread(new client1()).start();
}
}