windows环境下C如何调用socket??

bambooeric 2004-12-30 01:29:52
我第一次接触网络编程,想用C实现telnet远程登陆。

不知道如何在windows环境下用socket编程。

请大家赐教!!

如果有这方面的源码,希望能提供一下供我学习。

我的邮箱:lvjun30@163.com
谢谢!!!!
...全文
974 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Henry0 2004-12-30
  • 打赏
  • 举报
回复
楼主,如果只用C的话不太熟

一般就是用winsock

这方面资料楼上给了点,在网上也很多的
rwxybh 2004-12-30
  • 打赏
  • 举报
回复
CMyMfc(我行我素)说得很强啦
liulianwei 2004-12-30
  • 打赏
  • 举报
回复
#include <winsock2.h>
你再网上搜搜有很多啊
CMyMfc 2004-12-30
  • 打赏
  • 举报
回复
windows网络编程第二版
bambooeric 2004-12-30
  • 打赏
  • 举报
回复
那里面都是用vc的,有没有用c的啊
CMyMfc 2004-12-30
  • 打赏
  • 举报
回复
去www.vckbase.com, 那里有很多简单得实例, 也有相关得文章
lovessm 2004-12-30
  • 打赏
  • 举报
回复
mark
bambooeric 2004-12-30
  • 打赏
  • 举报
回复
有没有简单的实例,说明如何使用?
CMyMfc 2004-12-30
  • 打赏
  • 举报
回复
首先
#include <winsock2.h>

#pragma comment(lib, "wsock32.lib")

然后介绍几个函数

1、创建套接字——socket()
功能:使用前创建一个新的套接字
格式:SOCKET PASCAL FAR socket(int af,int type,int procotol);
参数:af: 通信发生的区域
type: 要建立的套接字类型
procotol: 使用的特定协议

2、指定本地地址——bind()
功能:将套接字地址与所创建的套接字号联系起来。
格式:int PASCAL FAR bind(SOCKET s,const struct sockaddr FAR * name,int namelen);
参数:s: 是由socket()调用返回的并且未作连接的套接字描述符(套接字号)。
其它:没有错误,bind()返回0,否则SOCKET_ERROR
地址结构说明:
struct sockaddr_in
{
short sin_family;//AF_INET
u_short sin_port;//16位端口号,网络字节顺序
struct in_addr sin_addr;//32位IP地址,网络字节顺序
char sin_zero[8];//保留
}

3、建立套接字连接——connect()和accept()
功能:共同完成连接工作
格式:int PASCAL FAR connect(SOCKET s,const struct sockaddr FAR * name,int namelen);
SOCKET PASCAL FAR accept(SOCKET s,struct sockaddr FAR * name,int FAR * addrlen);
参数:同上

4、监听连接——listen()
功能:用于面向连接服务器,表明它愿意接收连接。
格式:int PASCAL FAR listen(SOCKET s, int backlog);

5、数据传输——send()与recv()
功能:数据的发送与接收
格式:int PASCAL FAR send(SOCKET s,const char FAR * buf,int len,int flags);
int PASCAL FAR recv(SOCKET s,const char FAR * buf,int len,int flags);
参数:buf:指向存有传输数据的缓冲区的指针。
6、多路复用——select()
功能:用来检测一个或多个套接字状态。
格式:int PASCAL FAR select(int nfds,fd_set FAR * readfds,fd_set FAR * writefds,
fd_set FAR * exceptfds,const struct timeval FAR * timeout);
参数:readfds:指向要做读检测的指针
writefds:指向要做写检测的指针
exceptfds:指向要检测是否出错的指针
timeout:最大等待时间

7、关闭套接字——closesocket()
功能:关闭套接字s
格式:BOOL PASCAL FAR closesocket(SOCKET s);

bambooeric 2004-12-30
  • 打赏
  • 举报
回复
能不能详细的说明在C里面是怎么调用socket的
CMyMfc 2004-12-30
  • 打赏
  • 举报
回复
首先if (WSAStartup (MAKEWORD(1,1), &WSAData) != 0)
{
return FALSE;
}

其它得跟linux下都查不多了

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧