在windows下用C语言如何实现socket网络编程,需要用到哪些头文件或者库?
需要用到的头文件包含:#include #include 与Linux环境下socket编程相比,windows环境多了一个步骤:启动或者初始化winsock库Winsock,一种标准API,一种网络编程接口,用于两个或多个应用程序(或进程)之间通过网络进行数据通信。具有两个版本:Winsock 1:Windows CE平台支持。头文件:WinSock.h库:wsock32.libWinsock 2:部分平台如Windows CE貌似不支持。通过前缀WSA可以区别于Winsock 1版本。个别函数如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都属于Winsock 1.1规范的函数;头文件:WinSock2.h库:ws2_32.libmswsock.h用于编程扩展,使用时必须链接mswsock.dll扩展资料winsock库的加载与卸载:加载:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);加载成功,返回值为0。WORD wVersionRequested:加载的winsock版本,使用宏MAKEWORD(x, y),x表示高字节,y表示低字节。然而使用时MAKEWORD(2, 2)。高字节与低字节相同~~LPWSADATA lpWSAData:WSADATA结构的指针,传入参数后,系统帮助我们填充版本信息。有兴趣的可以看看结构体内容,不过基本用不着。卸载:int WSACleanup(void);比起加载,卸载的函数真是轻松愉快。
在windows下用C语言如何实现socket网络编程,需要用到以下头文件和库:1、头文件 winsock2.h,2、静态库文件 Ws2_32.lib3、动态DLL文件 Ws2_32.dll我们可以简单的把Socket理解为一个可以连通网络上不同计算机程序之间的管道,把一堆数据从管道的A端扔进去,则会从管道的B端(也许同时还可以从C、D、E、F……端冒出来)。管道的端口由两个因素来唯一确认,即机器的IP地址和程序所使用的端口号。扩展资料:Socket可以支持数据的发送和接收,它会定义一种称为套接字的变量,发送数据时首先创建套接字,然后使用该套接字的sendto等方法对准某个IP/端口进行数据发送;接收端也首先创建套接字,然后将该套接字绑定到一个IP/端口上,所有发向此端口的数据会被该套接字的recv等函数读出。如同读出文件中的数据一样。参考资料来源:百度百科-套接字
在windows下用C语言如何实现socket网络编程,需要用到以下头文件和库:头文件 winsock2.h,静态库文件 Ws2_32.lib动态DLL文件 Ws2_32.dll写一个UDP发送程序的步骤如下:1. 用WSAStartup函数初始化Socket环境;2. 用socket函数创建一个套接字;3. 用setsockopt函数设置套接字的属性,例如设置为广播类型;很多时候该步骤可以省略;4. 创建一个sockaddr_in,并指定其IP地址和端口号;5. 用sendto函数向指定地址发送数据,这里的目标地址就是广播地址;注意这里不需要绑定,即使绑定了,其地址也会被sendto中的参数覆盖;若使用send函数则会出错,因为send是面向连接的,而UDP是非连接的,只能使用sendto发送数据;6. 用closesocket函数关闭套接字;7. 用WSACleanup函数关闭Socket环境。与之类似,一个UDP接收程序的步骤如下,注意接收方一定要bind套接字:1. 用WSAStartup函数初始化Socket环境;2. 用socket函数创建一个套接字;3. 用setsockopt函数设置套接字的属性,例如设置为广播类型;4. 创建一个sockaddr_in,并指定其IP地址和端口号;5. 用bind函数将套接字与接收的地址绑定起来,然后调用recvfrom函数或者recv接收数据; 注意这里一定要绑定,因为接收报文的套接字必须在网络上有一个绑定的名称才能保证正确接收数据;6. 用closesocket函数关闭套接字;7. 用WSACleanup函数关闭Socket环境。参考资料地址:http://blog.csdn.net/xxbsky520/article/details/6161217
主要是看采取什么样的协议。是tcp还是udp使用的头文件是不一样的。不过差别都不大。winscok2.h就够用了。不过往深了走其实还是要涉及到其他的,这个普通的套接字编程主要是winscok2.h里面的。
那就是控制台应用程序喽 看孙鑫VC6视频教程网络编程部分很详细,VC6只是个平台,可以随便用什么来写 主要用到winscok2.h

linux下socket编程,菜鸟求解。。。
你这个东西问题太多啦,老实说,我那过去编都编不过。我改好了,给你指出几个重大错误! server:#include#include#include#include#include #include#include#define IPADDR "127.0.0.1"#define PORT 21234const char *logpath = "./log";int main(){struct sockaddr_in servaddr,cliaddr;int sockfd,clifd,logfd;socklen_t clilen;servaddr.sin_family = AF_INET;servaddr.sin_port = htons(PORT);servaddr.sin_addr.s_addr = htonl(INADDR_ANY);//bzero(&servaddr,sizeof(servaddr));sockfd=socket(AF_INET,SOCK_STREAM,0);bind(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr));listen(sockfd,8);printf("aaaaaaaaaaaaaaaan");char buf[500] = {0};for(;;){clilen = sizeof(cliaddr);clifd=accept(sockfd,(struct sockaddr *)&cliaddr,&clilen);printf("%dn",clifd);if(clifd < 0){printf("ccccccccccccccccccccccn");continue;}else{printf("ddddddddddddddddddddddddn");strcpy(buf,"welcome to 127.0.0.1:21234");send(clifd,buf,strlen(buf),0);}close(clifd);}close(sockfd);return 0;}client:#include #include #include #include #include #include #include #include #define PORT 43212#define SERVPORT 21234#define SERVADDR "127.0.0.1"int main(){int servfd,clifd,connre;struct sockaddr_in servaddr,cliaddr;clifd=socket(AF_INET,SOCK_STREAM,0);servaddr.sin_family = AF_INET;servaddr.sin_port = htons(21234);servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");//bzero(&servaddr,sizeof(servaddr));if((connre=connect(clifd,(struct sockaddr *)&servaddr,sizeof(servaddr)))<0){printf("sorry,connect wrongn");exit(1);}printf("%dn",connre);printf("connect ok,waiting for the server's message backn");int length;char buf[500];while(1){if((length = recv(clifd,buf,500,0))<0){continue;}else{printf("get it ,get itn");break;}}printf("hi,it's the client,I have recieve message :'hello,welcome' from server");close(clifd);return 0;}/////////////////////////////////错误1:bzero(&servaddr,sizeof(servaddr)); //刚赋值又清0,why?错误2:servaddr.sin_port = htons(PORT);//你要连的是serverport 其他的错误懒得说了,自己看吧.累死我了
你这个东西问题太多啦,老实说,我那过去编都编不过。我改好了,给你指出几个重大错误! server:#include#include#include#include#include#include#include#defineIPADDR"127.0.0.1"#definePORT21234constchar*logpath="./log";intmain(){structsockaddr_inservaddr,cliaddr;intsockfd,clifd,logfd;socklen_tclilen;servaddr.sin_family=AF_INET;servaddr.sin_port=htons(PORT);servaddr.sin_addr.s_addr=htonl(INADDR_ANY);//bzero(&servaddr,sizeof(servaddr));sockfd=socket(AF_INET,SOCK_STREAM,0);bind(sockfd,(structsockaddr*)&servaddr,sizeof(servaddr));listen(sockfd,8);printf("aaaaaaaaaaaaaaaan");charbuf[500]={0};for(;;){clilen=sizeof(cliaddr);clifd=accept(sockfd,(structsockaddr*)&cliaddr,&clilen);printf("%dn",clifd);if(clifd<0){printf("ccccccccccccccccccccccn");continue;}else{printf("ddddddddddddddddddddddddn");strcpy(buf,"welcometo127.0.0.1:21234");send(clifd,buf,strlen(buf),0);}close(clifd);}close(sockfd);return0;}client:#include#include#include#include#include#include#include#include#definePORT43212#defineSERVPORT21234#defineSERVADDR"127.0.0.1"intmain(){intservfd,clifd,connre;structsockaddr_inservaddr,cliaddr;clifd=socket(AF_INET,SOCK_STREAM,0);servaddr.sin_family=AF_INET;servaddr.sin_port=htons(21234);servaddr.sin_addr.s_addr=inet_addr("127.0.0.1");//bzero(&servaddr,sizeof(servaddr));if((connre=connect(clifd,(structsockaddr*)&servaddr,sizeof(servaddr)))<0){printf("sorry,connectwrongn");exit(1);}printf("%dn",connre);printf("connectok,waitingfortheserver'smessagebackn");intlength;charbuf[500];while(1){if((length=recv(clifd,buf,500,0))<0){continue;}else{printf("getit,getitn");break;}}printf("hi,it'stheclient,Ihaverecievemessage:'hello,welcome'fromserver");close(clifd);return0;}/////////////////////////////////错误1:bzero(&servaddr,sizeof(servaddr));//刚赋值又清0,why?错误2:servaddr.sin_port=htons(PORT);//你要连的是serverport 其他的错误懒得说了,自己看吧.累死我了
linux-u4p5:~/test/socket/server # ./client connect ok,waiting for the server's message back程序好像没看出问题来啊 会不会是防火墙设置问题?
好厉害都看不懂

菜鸟提问 socket是工作在传输层的吗
socket的实现部分, 就是系统协议栈部分, 应该包含了 网络层 (ip), 传输层(tcp/udp)等等。 用socket写程序的人, 就要看用socket那部分了。 如果你直接用ip层, rawsocket, 假如你自己写个tcp协议, 那你应该做的就是传输层。如果你是用tcp/udp等协议, 做网络应用, 那应该是应用层。 其实如果按osi的模型来分。 每个从事软件或者硬件开发的人, 都应该能找到自己工作在那一层。

菜鸟求教一个关于python socket的问题
情况时这样,最近刚学python,一直使用的文本编辑,在学到socket时自己尝试写了一个小脚本,部分语句如下: import socketself.service=socket.socket(socket.AF_INET,socket.SOCK_STREAM)python 运行无错最近又发现,原来eclipse是有python扩展包的,于是尝试把自己写的东西放到eclipse中运行,然后就报错了:self.service=socket.socket(socket.AF_INET,socket.SOCK_STREAM)AttributeError: 'module' object has no attribute 'AF_INET'ctrl+左键放到AF_INET提示此值存放在_socket下,于是有以下尝试:import socketimport _socketprint _socket.AF_INET #无报错,返回2print socket.AF_INET #报错于是修改了脚本import _socket as socket我的脚本运行正常首先,我系统的环境使用的时python2.6,eclipse中,windows-》preferences-》interpreter - python这里面的lib包(指向/usr/bin/python2.6),与我在终端的输出sys.path输出的值时一样的然后,我的问题:1,是不是在python中有两个模块,一个叫socket,一个叫_socket?2,为什么在终端执行,可以直接import socket.AF_INET,而在eclipse中则需要import _socket?可能你的测试脚本或当前路进下有其他脚本也叫socket,优先被载入造成错误,试试import后立刻打印路径看看是不是标准的那个...>>> import socket>>> print socket.__file__C:Python27libsocket.pyc >>>

菜鸟socket编程 关于c++和c#的问题
明确的告诉你,这个是可行的,socket是基于tcp/ip协议,无论是哪种语言写的服务器,只要开放socket端口,另外一种语言写的客户端是可以连接上的,它们之间使用标准的tcp/ip协议通讯。 附:我曾经用c# 写服务器 然后flex(也就是flash的编程版)写客户端实现聊天系统,这个是可行的。
为何用C#?
学习中.......

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/59959.html。