2.使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello,world”,客户端收到数据后打印输出。
代码如下:
package Tcp;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.Socket;
public class client {
public static void main(String[] args) throws Exception {
new TCPClient().connect();
}
}
class TCPClient{
private static final int PORT=8539;
public void connect() throws Exception{
//创建一个Socket并连接到给出地址和端口号的计算机
Socket client = new Socket(InetAddress.getLocalHost(),PORT);
InputStream is= client.getInputStream(); //得到接受数据的流
byte[] bs =new byte[1024]; //定义1024个字节数组的缓冲区
int len=is.read(bs);//将数据读入到缓冲区中
System.out.println(new String(bs,0,len));
client.close();
}
}
服务端的代码如下:
package Tcp;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws Exception {
new TCPServer().listen();
}
}
//TCP服务端
class TCPServer{
private static final int PORT=8539; //定义一个端口号
public void listen() throws Exception{
ServerSocket serverSocket =new ServerSocket(PORT);
Socket client = serverSocket.accept();
OutputStream os =client.getOutputStream();//获取客户端的输出流
os.write(("Hello world").getBytes());
os.close();
client.close();
}
}
运行效果图如下: