当前位置:首页 » 币种行情 » okoineth

okoineth

发布时间: 2022-06-11 11:15:46

❶ winsock.h是什么语言写的C语言可以include使用吗

winsock.h是socket1.0 winsock2.h是socket2.0
socket本来就是在unix系统下为C语言开发的一种基于TCP的传输协议 winsock只不过是把它移到windows系统上来罢了 当然是兼容c的 你可以下载socket独立的库来使用C调用 也可以使用其它编译器提供的库来调用 就看兼容程度了
#include <stdio.h>
#include <WinSock.h>
#pragma comment(lib, "ws2_32.lib")
int main(int argc, char* argv[])
{
HOSTENT *host_entry;
char host_name[256];
int n;
struct WSAData wsadata;
int sock;
struct sockaddr_in srvaddr;
struct hostent *hp;
char data[1024];
char c;
int i = 0;
if(argc<3)
{
printf("Usage: %s ip port\n",argv[0]);
exit(1);
}
if(WSAStartup(0x0101,&wsadata)==0)
{
n = gethostname(host_name, 256);
host_entry=gethostbyname(host_name);
if(host_entry != NULL)
{
printf("%d.%d.%d.%d\n",
host_entry->h_addr_list[0][0]&0x00ff,
host_entry->h_addr_list[0][1]&0x00ff,
host_entry->h_addr_list[0][2]&0x00ff,
host_entry->h_addr_list[0][3]&0x00ff);
}
sock=socket(AF_INET,SOCK_STREAM,0);
if ( sock < 0 )
{
printf("socket create error.\n");
exit(1);
}
srvaddr.sin_family=AF_INET;
hp=gethostbyname(argv[1]);
if(hp==0)
{
printf("unknow host: %s\n",argv[1]);
exit(1);
}
memcpy((char*)&srvaddr.sin_addr,(char*)hp->h_addr,hp->h_length);
srvaddr.sin_port=htons((unsigned short)atoi(argv[2]));
if(connect(sock,(struct sockaddr*)&srvaddr,sizeof(srvaddr))<0)
{
printf("connect server error.\n");
exit(1);
}
while(1)
{
memset(data, 0, 1024);
i = 0;
c = getchar();
while ( c != 10 )
{
data[i++] = c;
c = getchar();
}
data[i] = '\0';
if ( send(sock, data, sizeof(data), 0) < 0 )
{
printf("send data error.\n");
exit(1);
}
if (recv(sock,data,1024,0) )
{
printf("----->%s\n",data);
}
if(strcmp(data, "bye")==0)
{
closesocket(sock);
printf("connecting close.\n");
WSACleanup();
exit(0);
}
}
}
WSACleanup();
return 0;
}

❷ 请问怎么用Inet下载文件

Private Sub Command1_Click()
Inet1.Execute "文件路径", "GET"
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
If State = 12 Then
Dim BinBuff() As Byte

BinBuff = Inet1.GetChunk(0, icByteArray)
Open "文件保存路径" For Binary As #1
Put #1, , BinBuff
Close #1
MsgBox "下载完毕"
End If
End Sub

给你写了个简单的小例子,在窗体上添加一个按钮command1和一个inet控件inet1

❸ winsock.h的声明

int WSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData);
[参数]
wVersionRequested - 要求使用Winsock的最低版本号
lpWSAData - Winsock的详细资料
[返回值]
当函数成功调用时返回0
失败时返回非0的值
2、socket函数
用于生成socket(soket Descriptor)
[声明]
SOCKET socket(int af,int type,int protocol);
[参数]
af - 地址家族(通常使用:AF_INET)
type - socket的种类
SOCK_STREAM : 用于TCP协议
SOCK_DGRAM : 用于UDP协议
protocol - 所使用的协议
[返回值]
当函数成功调用时返回一个新的SOCKET(Socket Descriptor)
失败时返回INVALID_SOCKET.
3、inet_addr函数
把好象xxx.xxx.xxx.xxx的10进制的IP地址转换为32位整数表示方法
[声明]
unsigned long inet_addr ( const char FAR *cp );
[参数]
cp - 指向用xxx.xxx.xxx.xxx的10进制来表示的IP地址字符串的指针
[返回值]
当函数成功调用时返回用32位整数表示的IP地址(按网络字节排列顺序)
失败时返回INADDR_NONE.
4、gethostbyname函数
可以从主机名获取主机资料.
[声明]
struct hostent FAR * gethostbyname ( const char FAR *name );
[参数]
name - 指向主机名字符串的指针
[返回值]
当函数成功调用时返回主机信息
失败时返回NULL(空值)
5、Bind函数
指定本地IP地址所使用的端口号时候使用
[声明]
int bind ( SOCKET s , const struct sockaddr FAR *addr , int namelen );
[参数]
s - 指向用Socket函数生成的Socket Descriptor
addr - 指向Socket地址的指针
namelen - 该地址的长度.
[返回值]
当函数成功调用时返回0
调用失败时返回 SOCKET_ERROR
6、connect函数
用于与服务器建立连接,发出连接请求,必须在参数中指定服务器的IP地址和端口号
[声明]
int connect (SOCKET s , const struct sockaddr FAR *name , int namelen );
[参数]
s - 指向用Socket函数生成的Socket Descriptor
name - 指向服务器地址的指针
namelen - 该地址的长度.
[返回值]
当函数成功调用时返回0
调用失败时返回 SOCKET_ERROR
7、select函数
可以用于调查一个或多个SOCKET的状态.
[声明]
int select ( int nfds , fd_set FAR *readfds , fd_set FAR *writefds , fd_set FAR *exceptfds , const struct timeval FAR *timeout );
[参数]
nfds - 在WINDOWS SOCKET API 中该参数可以忽略,通常赋予NILL值
readfds - 由于接受的SOCKET设备的指针
writefds - 用于发送数据的SOCKET设备的指针
exceptfds - 检查错误的状态
timeout - 超时设定
[返回值]
返回大于0的值时,表示与条件相符的SOCKET数
返回0表示超时
失败时返回SOCKET_ERROR
8、recv函数
利用Socket进行接受数据.
[声明]
int recv ( SOCKET s , char FAR *buf , int len , int flags );
[参数]
s - 指向用Socket函数生成的Socket Descriptor
buf - 接受数据的缓冲区(数组)的指针
len - 缓冲区的大小
flag - 调用方式(MSG_PEEK 或 MSG_OOB)
[返回值]
成功时返回收到的字节数.
如果连接被中断则返回0
失败时返回 SOCKET_ERROR
9、sendto函数
利用Socket进行发送数据.
[声明]
int sendto ( SOCKET s , const char FAR *buf , int len , int flags , const struct sockaddr FAR *to , int token );
[参数]
s - 指向用Socket函数生成的Socket Descriptor
buf - 接受数据的缓冲区(数组)的指针
len - 缓冲区的大小
flag - 调用方式(MSG_DONTROUTE , MSG_OOB)
to - 指向发送方SOCKET地址的指针
token - 发送方SOCKET地址的大小
[返回值]
成功时返回已经发送的字节数.
失败时返回SOCKET_ERROR

❹ omnetpp.h: No such file or directory

#include "omnetpp.h"

❺ inet_ntop的简介

Linux下inet_pton和inet_ntop这2个IP地址转换函数,可以在将IP地址在“点分十进制”和“二进制整数”之间转换。而且,这2个函数能够处理ipv4和ipv6。算是比较新的函数了。
inet_ntop函数原型如下[将“二进制整数” -> “点分十进制”]
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt);
这个函数转换网络二进制结构到ASCII类型的地址,参数的作用和inet_pton相同,只是多了一个参数socklen_t cnt,他是所指向缓存区dst的大小,避免溢出,如果缓存区太小无法存储地址的值,则返回一个空指针,并将errno置为ENOSPC。

❻ netinet/in.h和linux/in.h分别在什么情况下使用

inet_network() / inet_addr() 等是供用户层使用的库函数。 在内核里面一般都是直接使用整数型,而不用点分十进制形式的IP形式。 不过如果需要的话,可以使用 in_aton() 函数,包含 linux/inet.h 头文件即可。 find/grep 查找看下吧。

热点内容
货币旗下的区块链 发布:2025-06-09 11:37:05 浏览:708
投资币圈资金费率 发布:2025-06-09 11:11:00 浏览:551
币圈未来潜力股 发布:2025-06-09 11:09:19 浏览:256
杠杆交易比特币 发布:2025-06-09 10:56:31 浏览:744
币圈排单是啥 发布:2025-06-09 10:51:59 浏览:357
国家区块链备案清单 发布:2025-06-09 10:41:51 浏览:64
孕妇doge 发布:2025-06-09 10:34:40 浏览:463
炒币圈到底是真的吗 发布:2025-06-09 10:22:11 浏览:252
区块链溯源技术应用农作物 发布:2025-06-09 10:03:17 浏览:899
电脑以太坊钱包 发布:2025-06-09 10:01:43 浏览:29