c socket?C语言有socket吗
一、怎么在c语言中用socket的方式调用webservice
可以实现,先connectsockaddr_inserver;if(m_bSockConnected){returnTRUE;}server.sin_addr.s_addr =inet_addr(m_szHost);server.sin_family =AF_INET;server.sin_port =htons((UINT)m_nPort);if(connect(m_socket,(structsockaddr*)&server,sizeof(server))==SOCKET_ERROR){m_bSockConnected=FALSE;m_nLastErrorNo=WSAGetLastError();MessageBox(0,"请检网络和服务器","网络连接错误",0);returnFALSE;}else{m_bSockConnected=TRUE;}inttimeout=30;setsockopt(m_socket,SOL_SOCKET,SO_RCVTIMEO,(constchar*)&timeout,sizeof(int));然后再发送urlcharrequestHeader[1024]={0};charnBuf[36] ={0};strcpy(requestHeader,"PUT");strcat(requestHeader,szUrl);strcat(requestHeader,"&Content-Length=");_ui64toa(contentLength+8,nBuf,10);//额外加了传输完成头的长度是8strlen(SEND_END_STRING)strcat(requestHeader,nBuf);strcat(requestHeader,"&FileCount=");ltoa(fileCount,nBuf,10);strcat(requestHeader,nBuf);strcat(requestHeader,"HTTP/1.1\r\nContent-Length:");_ui64toa(contentLength+8,nBuf,10);strcat(requestHeader,nBuf);strcat(requestHeader,"\r\nHost:");strcat(requestHeader,m_szHost);strcat(requestHeader,":");itoa(m_nPort,nBuf,10);strcat(requestHeader,nBuf);strcat(requestHeader,"\r\nAccept:*/*;\r\nAccept-Encoding:gzip,deflate\r\nKeep-Alive:60000\r\nConnection:keep-alive\r\n\r\n");//MessageBox(0,requestHeader,"info",0);char*szUTF8=NULL;BOOL bRet=FALSE;bRet=CCharTransLib::EncodeToUTF8(requestHeader,&szUTF8);if(bRet){if((int)strlen(szUTF8)!=send(m_socket,szUTF8,strlen(szUTF8),0)){m_nLastErrorNo=GetLastError();bRet=FALSE;}if(szUTF8){delete[]szUTF8;szUTF8=NULL;}}以上是从我工程里面摘的,可能有些变量楼主编译不过去,但基本思想就是这样的
二、C语言有socket吗
socket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socketdescriptor),它唯一标识一个socket。
这个socket描述字跟文件描述字一样,后续的操作都有用到它,把它作为参数,通过它来进行一些读写操作。