public class TCPTest {
@Test
public void client() {
Socket socket = null;
OutputStream os = null;
try {
//1.创建Socket对象,指明服务器端的ip和端口号
InetAddress inet = InetAddress.getByName("127.0.0.1");
socket = new Socket(inet, 8899);
//2.获取一个输出流,用于输出数据
os = socket.getOutputStream();
//3.写出数据的操作
os.write("hello哈哈哈".getBytes());
} catch (IOException e) {
e.printStackTrace();
} finally {
//4.资源关闭
if (os != null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
@Test
public void server(){
ServerSocket serverSocket = null;
Socket socket = null;
InputStream is = null;
ByteArrayOutputStream baos = null;
try {
//1.创建服务器端的ServerSocket,指明自己的端口号
serverSocket = new ServerSocket(8899);
//调用accept()表示接收来自于客户端的socket
socket = serverSocket.accept();
//3.获取输入流
is = socket.getInputStream();
//4.读取输入流中的数据
baos = new ByteArrayOutputStream();
byte[] bcuf = new byte[5];
int len;
while ((len = is.read(bcuf)) != -1) {
baos.write(bcuf, 0, len);
}
System.out.println(baos.toString());
} catch (IOException e) {
e.printStackTrace();
} finally {
if(baos!=null){
try {
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(baos!=null){
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(baos!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(baos!=null){
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
public class TCPTest2 {
@Test
public void client() throws IOException {
InetAddress inet = InetAddress.getByName("127.0.0.1");
Socket socket = new Socket(inet,8899);
OutputStream os = socket.getOutputStream();
File file = new File("hello.txt");
FileInputStream fis = new FileInputStream(file);
byte[] bytes = new byte[1024];
int len;
while ((len=fis.read(bytes))!=-1){
os.write(bytes,0,len);
}
socket.shutdownOutput();
fis.close();
os.close();
socket.close();
}
@Test
public void server() throws IOException {
FileOutputStream fos = new FileOutputStream("hello3.txt");
ServerSocket ss = new ServerSocket(8899);
Socket socket = ss.accept();
InputStream is = socket.getInputStream();
byte[] bytes = new byte[1024];
int len;
while ((len=is.read(bytes))!=-1){
fos.write(bytes,0,len);
}
is.close();
socket.close();
fos.close();
}
}