server
package tcp;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServerDemo1 {
public static void main(String[] args) throws Exception {
//监听8080端口
ServerSocket serverSocket = new ServerSocket(8080);
//等待客户端连接
Socket socket = serverSocket.accept();
/*一般写法
//读取客户端消息
InputStream is = socket.getInputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer))!=-1){
String msg = new String(buffer,0,len);
System.out.println(msg);
}
*/
//管道流读取法
InputStream is = socket.getInputStream();
ByteArrayOutputStream baos= new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer))!=-1){
baos.write(buffer,0,len);
}
System.out.println(baos.toString());
//关闭流
baos.close();
is.close();
socket.close();
serverSocket.close();
}
}
client
package tcp;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class TcpClientDemo1 {
public static void main(String[] args) throws Exception {
//初始化服务器地址
InetAddress serverIP = InetAddress.getByName("127.0.0.1");
//初始化端口号
int port = 8080;
//创建socket连接
Socket socket = new Socket(serverIP,port);
//发送消息
OutputStream os = socket.getOutputStream();
os.write("你好".getBytes());
//关闭流
os.close();
socket.close();
}
}