cs144

Writing webget

void get_URL( const string& host, const string& path )
{
  // cerr << "Function called: get_URL(" << host << ", " << path << ")\n";
  // cerr << "Warning: get_URL() has not been implemented yet.\n";
  TCPSocket socket;
  const Address addr(host, "http");
  socket.connect(addr);
  const string request = "GET " + path + " HTTP/1.1\r\nHost: " + host + "\r\nConnection: close\r\n\r\n";
  socket.write(request);
  while (!socket.eof()) {
    string reply;
    socket.read(reply);
    cout << reply;
  }
  socket.close();
}

TCPsocket的使用:
1.创建套接字(Socket):使用socket()函数创建一个套接字,指定地址族(通常是AF_INET或AF_INET6)和套接字类型(SOCK_STREAM用于TCP套接字)。
2. 绑定地址和端口(Bind):如果您正在创建服务器程序,则需要使用bind()函数将套接字与特定的IP地址和端口号绑定。这一步是可选的,但通常在服务器端进行。
3. 监听连接请求(Listen):如果您的程序是服务器端,接下来需要使用listen()函数开始监听连接请求。它指定服务器套接字可以排队等待连接请求的最大数量。
4. 接受连接(Accept):在服务器端,使用accept()函数接受客户端的连接请求。该函数会阻塞程序,直到有客户端连接进来。
5. 建立连接(Connect):如果您的程序是客户端,使用connect()函数连接到服务器。您需要提供服务器的IP地址和端口号。
6.发送和接收数据:一旦连接建立,服务器和客户端都可以使用send()和recv()函数来发送和接收数据。
7.关闭连接:当通信结束时,使用close()函数关闭套接字。
基本上,对于服务器端,使用顺序是socket() -> bind() -> listen() -> accept(),而对于客户端,使用顺序是socket() -> connect()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值