网络编程TCP

来源:互联网 发布:阿里云 code 编辑:程序博客网 时间:2024/05/14 15:30
public class ClientSocketFrame extends JFrame{JScrollPane scrollPane;JTextArea ta;Socket socket;ServerSocket server;public ClientSocketFrame(){//构造方法ta=new JTextArea();scrollPane=new JScrollPane(ta);getContentPane().add(scrollPane,BorderLayout.CENTER);setSize(300, 300);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void connect(){//链接套接字方法ta.append("尝试链接。。。。。\n");try{socket=new Socket("127.0.0.1",4700);//实例化套接字对象ta.append("完成链接\n");InetAddress netAddress=socket.getInetAddress();//获得远程服务器的地址String netIp=netAddress.getHostAddress();//获得远程服务器的IP地址int netPort=socket.getPort();//获得服务器端口号InetAddress localAddress=socket.getLocalAddress();//获得本地记得地址String localIp=localAddress.getHostAddress();//获得本机IP地址int localPort=socket.getLocalPort();//获得本地端口号ta.append("远程服务器的IP地址:"+netIp+"\n");ta.append("远程服务器的端口号:"+netPort+"\n");ta.append("客户机本地的IP地址:"+localIp+"\n");ta.append("客户机本地的端口号:"+localPort+"\n");}catch(Exception e){e.printStackTrace();}}public void getServer(){try{server=new ServerSocket(4700);//实例化对象server.setSoTimeout(1000);//设置链接超时时间ta.append("服务器套接字已经创建成功\n");while(true){ta.append("等待客户机的链接\n");server.accept();}}catch(SocketTimeoutException e){ta.append("链接超时......");JOptionPane.showMessageDialog(null,"链接超时...");}catch(IOException e){e.printStackTrace();}}public static void main(String[] args) { ClientSocketFrame c=new ClientSocketFrame(); c.connect(); c.getServer();}}