socket编程

本文深入解析了TCP连接的基本概念,包括服务器端和客户端的建立连接流程,详细介绍了InetAddress类、URL类、URLConnection类的功能及使用方法,并通过具体代码示例展示了如何实现TCP连接的输入输出操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//河北工业大学人工智能学院复习重点
主要内容:
1.访问网络的三大类。(InetAddress类,URL类,URLConnection类)
2.TCP连接的网络连接

1. InetAddress类
成员方法:
InetAddress getByname(String host)
InetAddress getLocalHost()
InetAddress[] getAllByName(String host)

2. URL类
成员方法:
toString()//得到URL
getProtocol()//得到协议
getAuthority()//验证信息
getFile()//文件名和请求参数
getHost()//主机号
getPort()//端口号
getQuery()//请求参数
getPath()//路径
getDefaltPort()//默认端口号
getRef()//定位位置
3. URLConnection类
成员方法:
//URLConnection urlconnection=url.openConnection();
getInputStream()
/用法:BufferedReader br=new BufferedReader (new InputStreamReader(urlconnection.getInputStream()));/
4. TCP连接
服务器端步骤:

  1. 创建ServerSocket对象
  2. SreverSocket对象调用accept方法
  3. 连接成功后,将连接赋值给Socket对象
  4. 输入输出,socket.getInputSteram();socket.getOutputStream();
  5. 关闭输入输出
  6. 关闭socket
  7. 关闭serversocket
    客户端步骤:
  8. 创建Socket对象
  9. 与服务器端建立连接
  10. 输入输出
  11. 关闭输入输出
  12. 关闭socket
    服务器端和客户端的交流
package exp71;
import java.sql.*;
import  java.net.*;
import java.io.*;
import java.util.Scanner;

public class Server {
//服务器端
    public static void main(String []args)throws Exception {
        int port = 13355;
        ServerSocket server=new ServerSocket(port);//创建TCP连接
        System.out.println("等待客户端的连接!");
        Socket socket=server.accept();//等待客户端的连接
        System.out.println("连接成功!");
        //进行输入输出
        InputStream is=socket.getInputStream();
        OutputStream os=socket.getOutputStream();
        byte[] b=new byte[1024];
        int len;
        StringBuilder sb=new StringBuilder();
        while((len=is.read(b))!=-1){
            sb.append(new String(b,0,len,"UTF-8"));
        }
        System.out.println(sb);

        os.write("bye".getBytes("UTF-8"));
        is.close();
        os.close();
        socket.close();
        server.close();
    }
}

```java
package exp71;
import java.net.*;
import java.io.*;
import java.util.*;
public class Client{
//客户端
    public static void main(String [] args)throws Exception{
        int port=13355;
        String host="127.0.0.1";
        System.out.println("正在连接服务器。。。");
        Socket socket=new Socket(host,port);
        System.out.println("已连接服务器。。。");
        //进行输入输出
        InputStream is=socket.getInputStream();
        OutputStream os=socket.getOutputStream();
        Scanner sc=new Scanner(System.in);
        String s=sc.next();
        os.write(s.getBytes("UTF-8"));
        socket.shutdownOutput();
        byte[] b=new byte[1024];
        int len;
        StringBuilder sb=new StringBuilder();
        while((len=is.read(b))!=-1){
            sb.append(new String (b,0,len,"UTF-8"));
        }
        System.out.println("服务器端说:"+sb);

        is.close();
        os.close();
        socket.close();
    }
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值