首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

想用c语言做网络开发解决方案

2012-02-14 
想用c语言做网络开发想用标准c语言做网络编程。以前用C++做过sockets编程。不知道怎么做,大家给点意见和思路

想用c语言做网络开发
想用标准c语言做网络编程。
以前用C++做过sockets编程。
不知道怎么做,大家给点意见和思路

[解决办法]
#include<iostream>
#include<winsock2.h>
#include<Cstring>
#pragma comment(lib, "ws2_32.lib")
using namespace std;

#define SERVER_ADDRESS "127.0.0.1"
#define CLIENT_ADDRESS "127.0.0.1"
#define SIZE 132 //数据包长度

void main()
{
char send_buf[SIZE]; //server发送缓冲区
SOCKET s_Socket; //套接字句柄
WSADATA wsaData; //WSADATA结构对象
WORD wVersionRequested=MAKEWORD(2,0); //指定Winsock版本2.0

WSAStartup(wVersionRequested,&wsaData); //启动winsock
s_Socket=socket(AF_INET,SOCK_DGRAM,0);//创建数据报套接字


//设置server地址结构对象
struct sockaddr_in server_addr; //server套接字地址结构 
server_addr.sin_family=AF_INET; //TCP/IP地址协议簇 
server_addr.sin_addr.S_un.S_addr=inet_addr(SERVER_ADDRESS); //IP地址转化为unsigned long 
server_addr.sin_port=htons(8888); //端口号 
int serverlen=sizeof(sockaddr);

//定义 client 端地址结构
struct sockaddr_in client;
client.sin_family= AF_INET;
client.sin_addr.S_un.S_addr =inet_addr(CLIENT_ADDRESS) ;
client.sin_port = htons(9999); 

//绑定套接字 
bind(s_Socket,(SOCKADDR*)&server_addr,sizeof(server_addr));

 
//send_buf=(char*)malloc(SIZE*sizeof(char));
cout<<"Please input your message. Input Enter to send, quit to end the application"<<endl;
gets(send_buf);
while(strcmp(send_buf,"quit"))
{
sendto(s_Socket, send_buf,sizeof(send_buf), 0, (struct sockaddr*)&client, sizeof(struct sockaddr));
cout<<"Please input your message. Input Enter to send, quit to end the application"<<endl;
gets(send_buf); 
}//end while

strcpy(send_buf,"The server is closed");
sendto(s_Socket, send_buf,sizeof(send_buf), 0, (struct sockaddr*)&client, sizeof(struct sockaddr));

closesocket(s_Socket);
WSACleanup();

return;
}

热点排行