| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2923 人关注过本帖
标题:如何用C编写网络程序?
只看楼主 加入收藏
shuai007
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-4-13
收藏
 问题点数:0 回复次数:11 
如何用C编写网络程序?
谁知道如何用C编写网络程序,要用到什么函数?
搜索更多相关主题的帖子: 网络程序 编写 函数 
2008-02-24 17:03
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你要写什么网络程序?一般要用socket三次握手协议
2008-02-24 17:34
shuai007
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-4-13
收藏
得分:0 
可以点对点聊天的,并且可以传输文件

QQ583967751.................帮帮5
2008-02-24 17:43
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你去看看网络编程,把socket学好.应该可以了,最近也在看.不能多说什么....不好意思..
2008-02-24 17:47
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你要的话我这有例子,是基于c++ mfc得,上面有,我可以发给你.....用api写太烦了...
2008-02-24 18:27
hanyiask
Rank: 1
来 自:滁州
等 级:新手上路
帖 子:345
专家分:0
注 册:2007-2-6
收藏
得分:0 
DirectX不可以吗?

但愿朝阳常照我土,莫忘烈士鲜血满地!
2008-02-24 18:50
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
DirectX是微软开发并发布的多媒体开发软件包,其中有一部分叫做DirectDraw是图形绘演API,提供对图形的强大的访问处理能力,而在DirectDraw中集成了一些三维图形相关的功能,叫做Direct3D。大概因为是微软的手笔,有的人就说它将成为3D图形的标准。
2008-02-24 19:02
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "winsock2.h"
#include "ctype.h"
#include "time.h"

#pragma comment(lib,"WSOCK32")

#define SERVER_PORT 5000
#define DefaultHTML "login.htm"
SOCKET sockfd;


char *r200 = "HTTP/1.0 200\n";
char *r302 = "HTTP/1.0 302 Found\n";
char *notfound ="HTTP/1.0 404 Not Found\n";
char *header = "Content-type: text/html\n";
char *end = "\n";
char *version="0.1.0";


void WriteRedirect(SOCKET connfd,char *loc)
{
time_t now;
char Buffer[1025];

now=time(NULL);
send(connfd,r302,strlen(r302),0);
sprintf(Buffer,"Location: %s\n",loc);
send(connfd,Buffer,strlen(Buffer),0);
sprintf(Buffer,"Server: Web Chat Server %s\n",version);
send(connfd,Buffer,strlen(Buffer),0);
sprintf(Buffer,"Date: %s",ctime(&now)); /* ctime 输出的时候自动在行尾输出\n */
sprintf(Buffer,"Expires: %s",ctime(&now)); /* ctime 输出的时候自动在行尾输出\n */
sprintf(Buffer,"Last-Modified: %s",ctime(&now)); /* ctime 输出的时候自动在行尾输出\n */
send(connfd,Buffer,strlen(Buffer),0);

sprintf(Buffer,"Cache-Control: no-cache\nPragma: no-cache\n");
send(connfd,Buffer,strlen(Buffer),0);
send(connfd,header,strlen(header),0);
send(connfd,end,strlen(end),0);
}


void main()
{
char Server_name[128];
WSADATA wsaData;
struct hostent *hp;
struct sockaddr_in addrServer;
SOCKADDR addrtemp;
int nlen = sizeof(addrtemp);
SOCKET connfd;
char *data="HTTP/1.1 200 OK\r\nDate: Tue, 21 Sep 2001 02:19:57 GMT\r\nServer: iis5\r\nContent-Type: text/html\r\n\r\n<html><head><title>Untitled Document</title><meta http-equiv='Content-Type' content='text/html; charset=gb2312'></head><body bgcolor=#FFFFFF text=#000000><center><br><br>这是一个测试</body></html>";

WSAStartup(0x202,&wsaData); //初始化Winsock资源
sockfd = socket(AF_INET,SOCK_STREAM,0); //建立套接字
//AF_INET:TCP/IP地址族
//SOCK_STREAM:数据流方式
gethostname(Server_name,128); //获取机器的名称
hp = gethostbyname(Server_name); //通过机器名称获取主机的信息

//初始化sockaddr_in结构
//包括IP地址sin_addr、协议族sinfamily和使用的端口sin_port
memset(&addrServer,0,sizeof(addrServer));
memcpy(&(addrServer.sin_addr),hp->h_addr,hp->h_length);
addrServer.sin_family = AF_INET;
addrServer.sin_port = htons((unsigned short)SERVER_PORT);

if(SOCKET_ERROR == bind(sockfd,(LPSOCKADDR)&addrServer,sizeof(addrServer)))
{
printf("Bind Socket Error ! \r\n");
return;
}
else
printf("Bind Socket Success . . .\r\n");


listen(sockfd,5); //在socketServer上监听连接信息
printf("Wait for a connection . . .\r\n");



for(;;)
{
  ZeroMemory((void*)&addrtemp,sizeof(addrtemp));
  nlen = sizeof(addrtemp);
  connfd = accept(sockfd,&addrtemp,&nlen); //接受连接请求并生成专用的接收socket
  WriteRedirect(connfd,"chkusrpw.htm");
  closesocket(connfd);
}

closesocket(sockfd);
WSACleanup();
return;
}
2008-02-24 22:36
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
支持一下.
2008-02-24 23:01
hao0716
Rank: 4
等 级:业余侠客
威 望:1
帖 子:353
专家分:222
注 册:2006-4-11
收藏
得分:0 
看winsock还有winpcap
协议方面用udp就好了,简单点

2008-02-25 14:54
快速回复:如何用C编写网络程序?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026964 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved