| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2671 人关注过本帖
标题:《UNIX网络编程》时间获取客户端/服务器程序,WIN/MAC下运行
取消只看楼主 加入收藏
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
结帖率:94.72%
收藏
已结贴  问题点数:8 回复次数:3 
《UNIX网络编程》时间获取客户端/服务器程序,WIN/MAC下运行
// client
#include <winsock2.h>
#include <stdio.h>
int main()
{
    WSAData wsaData;
    WSAStartup(MAKEWORD(2, 2), &wsaData);
   
    int sockfd, n;
    char recvline[1024];
    struct sockaddr_in servaddr;
   
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
   
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(13);
    struct hostent *host_entry = gethostbyname("localhost");
    servaddr.sin_addr.s_addr = *(unsigned long*) host_entry->h_addr;
   
    int c = connect(sockfd, (sockaddr*)&servaddr, sizeof(servaddr));
   
    while ((n = recv(sockfd, recvline, 1024, 0)) > 0)
    {
        recvline[n] = 0;
        fputs(recvline, stdout);
    }
   
    getchar();
    return 0;
}
// server
#include <winsock2.h>
#include <stdio.h>
#include <time.h>
int main()
{
    WSAData wsaData;
    WSAStartup(MAKEWORD(2, 2), &wsaData);
   
    int listenfd, connfd;
    struct sockaddr_in servaddr;
    char buff[1024];
    time_t ticks;
   
    listenfd = socket(AF_INET, SOCK_STREAM, 0);
   
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(13);
    servaddr.sin_addr.s_addr = INADDR_ANY;
   
    bind(listenfd, (sockaddr*)&servaddr, sizeof(servaddr));
   
    listen(listenfd, 5);
   
    for (;;)
    {
        connfd = accept(listenfd, 0, 0);
        ticks = time(NULL);
        sprintf(buff, "%.24s\r\n", ctime(&ticks));
        send(connfd, buff, strlen(buff), 0);
    }
   
    getchar();
    return 0;
}
// MAC client
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
    int sockfd, n;
    char recvline[1024];
    struct sockaddr_in servaddr;
   
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
   
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(7650);
    struct hostent *host_entry = gethostbyname("localhost");
    servaddr.sin_addr.s_addr = *(unsigned long*) host_entry->h_addr;
   
    int c = connect(sockfd, (sockaddr*)&servaddr, sizeof(servaddr));
   
    while ((n = recv(sockfd, recvline, 1024, 0)) > 0)
    {
        recvline[n] = 0;
        fputs(recvline, stdout);
    }
   
    getchar();
    return 0;
}
// MAC server
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <unistd.h>
#include <time.h>
#include <string.h>
int main(int argc, char *argv[])
{
    int listenfd, connfd;
    struct sockaddr_in servaddr;
    char buff[1024];
    time_t ticks;
   
    listenfd = socket(AF_INET, SOCK_STREAM, 0);
   
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(7650);
    servaddr.sin_addr.s_addr = INADDR_ANY;
   
    bind(listenfd, (sockaddr*)&servaddr, sizeof(servaddr));
   
    listen(listenfd, 5);
   
    for (;;)
    {
        connfd = accept(listenfd, 0, 0);
        ticks = time(NULL);
        sprintf(buff, "%.24s\r\n", ctime(&ticks));
        send(connfd, buff, strlen(buff), 0);
    }
   
    getchar();
    return 0;
}

[此贴子已经被作者于2015-12-18 11:39编辑过]

搜索更多相关主题的帖子: 客户端 服务器 include 网络编程 localhost 客户端 服务器 include 网络编程 localhost 
2015-12-18 01:00
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 2楼 beyondyf
我基础一直不扎实

我就是真命天子,顺我者生,逆我者死!
2015-12-19 00:11
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
我写的代码确实很基础,事实上很多游戏的客户端/服务器的网络代码都很基础。
我之前没怎么写过网络程序,都是用的公司现有的代码,尽管如此,我对网络编程还是相当了解的。
最近想把网络编程的细节学习的更透彻一点。然后,我习惯在windows下编程,所以用的winsock.h。
但是,我用的教程是《UNIX网络编程》,我只是在原书代码的开头加了一句 WSAStartup简单的实现了跨平台而已。
我觉得有些代码对那些使用windows编程的同学可能有点帮助,所以就帖出来跟大家分享一下。
那个getchar()是我修改代码的时候忘了删除了,具体你可以看我上一个帖子。
这段代码只是一个实验性的代码,之后,我写的代码将不会在UNIX下运行,不会再包含UNIX头文件。

我那个游戏进度非常缓慢,我平时也是在给别人打工,基本没什么业余时间学习和编码。
另外,你的算法那么好,技术那么好,不在软件行业做一番事业真的太可惜了。

[此贴子已经被作者于2015-12-19 09:34编辑过]


我就是真命天子,顺我者生,逆我者死!
2015-12-19 00:26
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 5楼 wmf2014
用控件怎么做?能不能指教一下?

我就是真命天子,顺我者生,逆我者死!
2015-12-20 08:24
快速回复:《UNIX网络编程》时间获取客户端/服务器程序,WIN/MAC下运行
数据加载中...
 
   



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

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