怎么用c编写socket程序?
请问一下,在c中能编写socket程序吗?
我曾经抄书抄了个程序:
//File Name :stream.c
#include <winsock.h>
#include <stdio.h>
#define DATA "half a league,half a league..."
//这个程序建立套接字,然后与命令行给出的套接字连接;连接结束时,在
//连接上发送一个消息,然后关闭套接字。命令行格式是:streamc 主机名 端口号。
//端口号要与服务器程序的端口号相同。
void main(int argc,char *argv[])
//int argc;
//char *argv[];
{
int sock;
struct sockaddr_in server;
struct hostent *hp,*gethostbyname();
char buf[1024];
//建立套接字。
sock=socket(AF_INET,SOCK_STREAM,0);
if(sock<0){
perror("opening stream socket");
exit(1);
}
//使用命令行中指定的名字连接套接字。
server.sin_family=AF_INET;
//hp=gethostbyname(argv[1]);
hp=gethostbyname();
if(hp==0){
fprintf(stderr,"%s: unknown host \n",argv[1]);
exit(2);
}
memcpy((char *)&server.sin_addr,(char *)hp->h_addr,hp->h_length);
server.sin_port=htons(atoi(argv[2]));
if(connect(sock,(struct sockaddr*)&server,sizeof(server))<0){
perror("connecting stream socket");
exit(3);
}
if(send(sock,DATA,sizeof(DATA),1)<0)
perror("sending on stream socket");
closesocket(sock);
exit(0);
}
但是在turboc2,turboc3中不能运行,在vc中也不能,我不知道是否vc的环境设置
不正确?(我查过,turboc中没有winsock.h头文件,但在vc中有的)