************第三段*************
转眼已经把《WinSock网络程序设计》这门课学完了,用意犹未尽和半生不熟都可以形容我现在的感觉,哈哈 在论坛上转了转发现这一块的问题还是挺多的,正好现在是考前复习阶段,我就来一边复习一边写出来;同时也是抛砖引玉,希望高手看过以后能多多指点 (注*有很多都是网上整理来的) (注*全文首先在http://forum.exceedu.com/上连载,只有当exceedu.com无法访问时才会转移到这里,希望大家及时去dingge论坛上查找最新文章) ****************************** #############小试牛刀############ 大家都说了,看了这么多都是理论有什么意思,说得也对,编成么,本来就是要求动手的,我有一个写好的以MYSQL为后台的,C++的SOCKET聊天室,我把源文件给大家也没有用,因为你们没有MYSQL还是启动不起来,但是我在这里逐步把程序分解开给大家讲读,我想大家不久就可以写出自己的程序来了 1.SOCKET的基本步骤:
Int WSAStartup ( ) 初始化SOCKET SOCKET socket ( ) 创建一个套接字实例 INT WSAGetLastError ( ) 获取错误代码 INT bind ( ) INT Listen ( ) 程序源代码 ---------------------------------------------------------------------------------------------------------------- // ----------------socket环境------------
if(WSAStartup(MAKEWORD(2,2), &wsd)!=0) //初始化 { fprintf(stderr, "unable to load Winsock!\n"); getchar(); return -1; }
serversocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); //创建聊天室TCP套接子
//(sock_add_IN)结构 填充服务器地址变量 sadd.sin_family = AF_INET; sadd.sin_port = htons(5050); //转换成短整型 sadd.sin_addr.S_un .S_addr = htonl(INADDR_ANY); //自动适应本机地址 //绑定聊天室服务器地址结构 SockErr1 = bind(serversocket,(const sockaddr*)&sadd,sizeof(sadd)); if((SockErr1&&SockErr2) == SOCKET_ERROR) { SockErr1 = WSAGetLastError(); cout <<"服务器绑定出错"<<endl; //ReportError(SockErr,"绑定出错") ; //错误处理 WSACleanup();
} //监听客户 SockErr1=listen(serversocket,5); if(SockErr1==SOCKET_ERROR) { SockErr1=WSAGetLastError(); cout <<"服务器监听出错"<<endl; //错误处理 WSACleanup();
} ------------------------------------------------------------------------------------------------------------- 大家应该能看明白吧 
[此贴子已经被作者于2005-7-9 22:00:42编辑过] |