用C连接到主机
connect to host in C
我必须连接到host
和port
。端口为const,但host
变量需要从shell输入。我有一个错误
int main(int argc, char ** argv)
{
if (argc<2){
printf("Need more argumentsn");
return 1;
}
int sock;
if((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0){
perror("socket creating error");
return 1;
}
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(22222);
addr.sin_addr.s_addr = argv[1]; // try to conect host
...
}
不能这样分配主机给s_addr
。您需要将它从字符串主机名/ip号转换为s_addr
如果您是POSIX,请查看getaddrinfo()
,否则您可以使用inet_addr()
, gethostbyname()
, gethostbyaddr()
等。关键是,需要进行转换。
我建议谷歌的一些例子客户端/服务器代码…有很多。
相关文章:
- 当套接字连接断开时检测C/C++Unix
- 如何强制 Thrift 仅接受来自本地主机的连接
- 如何在 2 台主机之间保持 UDP 套接字连接打开
- Cesanta Mongoose - 连接到本地主机时出现问题
- Cassandra 驱动程序中每个主机的最大连接数
- 在为C 设置NetBean时,它显示了未连接的构建主机
- 通过套接字一致地丢失数据(但在使用本地主机连接时不会)
- 本地主机上的最大连接数
- c++winsock客户端无法使用主机IP的文本框进行连接
- QTcpSocket:使用bind()选择源接口,以便使用connectToHost()连接到远程主机:需要一个解决方法
- 如何只允许来自本地主机的TCP连接
- C++程序在执行时崩溃且没有错误消息 con = 驱动程序>连接(主机、用户、通行证);
- 彭博 API 连接问题 - <本地主机:8194> 连接失败
- 用C连接到主机
- Socket客户端总是连接到本地主机
- 检查Windows机器是否可以作为RDP连接中的主机
- 在本地主机套接字上是否需要任何类型的保持连接
- C/ c++ Posix tcp/ip网络客户端,只连接到本地主机
- 在连接(ping)之前验证IP地址(主机)是否存在
- 日志含义boost::asio连接本地主机失败