TCP协议
客户端
package testlu;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets;
public class TcpClient {
public static void main(String[] args) {
Socket socket =null;
OutputStream os=null;
try {
InetAddress inetAddress = InetAddress.getByName("127.0.0.1");
int port = 9999;
/**
* 服务器地址及端口号
*/
socket = new Socket(inetAddress,port);
/**
* 创建Socket连接
*/
os=socket.getOutputStream();
os.write("HelloWorld".getBytes());
/**
* 发送消息,getBytes()是将字符串转化为一个字节数组byte[]
*/
} catch (Exception e) {
e.printStackTrace();
}finally {
if (os!=null){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
服务端
package testlu;
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;
Socket socket =null;
InputStream is =null;
ByteArrayOutputStream baos = null;
try {
serverSocket = new ServerSocket(9999);
/**
* 服务端端口号
*/
socket = serverSocket.accept();
/**
* 等待客户端连接
*/
is = socket.getInputStream();
/**
* 接受客户端的信息
*/
baos = new ByteArrayOutputStream();
/**
* ByteArrayOutputStream 对byte类型数据进行写入的类 相当于一个中间缓冲层,将类写入到文件等其他outputStream。它是对字节进行操作,属于内存操作流
*/
byte[] buffer = new byte[1024];
int len;
while((len=is.read(buffer))!=-1)
{
baos.write(buffer,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(is!=null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(socket!=null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(serverSocket!=null) {
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}