社区
C语言
帖子详情
C语言如何实现Socket编程
buyong
2003-07-14 01:30:32
现在欧要做一个用C语言实现客户端和服务器端Socket通信的程序,要求可以在Windows和Unix上运行,现在求教例子程序。(必须是C语言)
...全文
705
15
打赏
收藏
C语言如何实现Socket编程
现在欧要做一个用C语言实现客户端和服务器端Socket通信的程序,要求可以在Windows和Unix上运行,现在求教例子程序。(必须是C语言)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gunsrose
2003-07-15
打赏
举报
回复
up
fixopen
2003-07-15
打赏
举报
回复
Windows 下的 Winsock 对于 BSD 的 Socket 有了很多扩展,但是不利用这些扩展也是可以进行socket编程的。
不过Winsock有两个函数必须使用:WSAStartup, WSACleanup。分别在开始和结束时使用。
在unix下,简单的去掉就行了。
因为不用WSAAsyncSelect和其他的WSA*类的扩展函数,必须把select搞清楚,很好的同步函数呀。
good luck
magic007
2003-07-14
打赏
举报
回复
SORRY,我说成C++实现的了。不过C也类似,进行某种程度的抽象
zteliubin
2003-07-14
打赏
举报
回复
socket编程的书推荐 Richard Stevens《UNIX网络编程:第1卷》
magic007
2003-07-14
打赏
举报
回复
既然是TCP/IP协议,不管是在WINDOWS下还是在UNIX下,都是相通的
应该先熟悉TCP/IP,然后试着在UNIX和WINDOWS平台上编程,找出其不同点和共同点。
编程时把平台相关部分抽象为接口,如果将来要移到UNIX上,重新实现这个接口即可了
shishiXP
2003-07-14
打赏
举报
回复
编得不好,仅作参考
int accefd, sockfd;
sockaddr_in seraddr;
sockaddr_in cliaddr;
int len_cli;
if ( (sockfd = socket (AF_INET, SOCK_STREAM, 0) ) == -1)
{
printf("socket error\n");
out();
}
bzero(&seraddr, sizeof (seraddr) );
seraddr.sin_family = AF_INET;
seraddr.sin_port = htons (MYPORT);
seraddr.sin_addr.s_addr = htonl (INADDR_ANY);
if( bind (sockfd, (sockaddr *)&seraddr, sizeof (seraddr)) == -1)
{
printf ("bind error\n");
out ();
}
if( listen (sockfd,5) == -1)
{
printf ("listen error\n");
out ();
}
len_cli = sizeof(cliaddr);
if ( (accefd = accept (sockfd, (sockaddr *)&cliaddr, &len_cli) ) == -1)
{
printf("accept error\n");
close(sockfd);
exit(-1);
}
close ( accefd );
close ( sockfd );
jy2004
2003-07-14
打赏
举报
回复
找本tcp/ip
zteliubin
2003-07-14
打赏
举报
回复
可以的,除了WSAStartup()
不要用其他WSA函数。
WSAStartup()可以用定义开关#ifdef WIN32.
wonita
2003-07-14
打赏
举报
回复
找本介绍WINDOWS的SOCKET的书看看
buyong
2003-07-14
打赏
举报
回复
或者我改为求教2个程序例子,一个在windows上实现,另一个在Unix上实现。不过那Unix和Window之间的Socket通信怎么做呢?
buyong
2003-07-14
打赏
举报
回复
偶也不太懂,偶老板说用C做,将来可以放在Unix上,就是不要用windows socket.怎么办?
lw549
2003-07-14
打赏
举报
回复
Winsock是windows专用的,怎么能移植到unix上呢?
antijpn
2003-07-14
打赏
举报
回复
Unix里面用的和Windows里面的差别好像大了一点吧?
Unix里面用的是Berkeley Socket,而Windows里面用的是Winsock
Winsock扩展了很多专用函数,例如WSAAsyncSelect,WSAStartup,WSACleanup等等,使用规则和流程也不是很一样。要实现移植恐怕有点困难了
cwanter
2003-07-14
打赏
举报
回复
倒,你听谁说可以跨平台?windows要调用WSAStartup,unix不用。
liuhaibao
2003-07-14
打赏
举报
回复
推荐一本书自己去看,tcp\ip祥解第二卷,上面讲的很详细
Linux下
C语言
实现
UDP
Socket编程
该博文参考了Linux C socket 编程之UDP一文,在这里表示感谢! 发送方: /* * File: udp_sender.c * Author: 离樽 * * Created on 2019年5月29日17:08:13 * * 主要
实现
:发送20个文本消息,然后再发送一个终止消息 */ #include <stdio.h> #include <s...
C语言
通过
socket编程
实现
TCP通信
服务端客户端通信例子:socket tcp 通信1,socket tcp通信2,udp使用讲解,socket udp通信例子 1. TCP/IP协议 叫做传输控制/网际协议,又叫网络通信协议。实际上,它包含上百个功能的协议,如ICMP(互联网控制信息协议)、FTP(文件传输协议)、UDP(用户数据包协议)、ARP(地址解析协议)等。TCP负责发现传输的问题,一旦有问题就会发出重传信号,直到所...
【
Socket编程
】套接字Windows平台
C语言
实现
Socket API在windows平台下的基础代码。
c语言
通过
socket编程
实现
tcp通信,
C语言
编程环境下如何利用socket
实现
TCP协议
socket编程
是
C语言
编程中使用非常多的一种编程技术,下面我们就通过案例分析来了解一下,如何利用
socket编程
来
实现
网络通信协议。1、网络中进程之间如何通信?本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:消息传递(管道、FIFO、消息队列)同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)共享内存(匿名的和具名的)远程过程调用(Solaris门和SunRPC)但这些都不是...
C语言
实现
的
Socket编程
接收端程序: #include #include #include #include #include #include #include #define myport 319 char buf[200]; int main(int argc , char *argv[]) { int sockfd,new_sockfd; struct sockad
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章