资源简介
实验4-基于socket的简单网络程序设计
1、实验目的与要求:
(1)初步掌握TCP和UDP方式的网络编程模式。
(2)能运用Winsock提供的API函数接口进行网络程序的编写。
代码片段和文件信息
#include
#include “winsock2.h“
//winsock 2.2 library
#pragma comment(lib“ws2_32.lib“)
#define PORT 8888
#define ADDR “127.0.0.1“
int main(int argc char* argv[])
{
WSADATA wsock;
SOCKET listensocketnewconnection;
SOCKADDR_IN serAddrcliAddr;
int cliAddrLen=sizeof(cliAddr);
int nRet=0;
char buf[100];
//初始化Winsock 2.2
printf(“\nInitialising Winsock...\n“);
if (WSAStartup(MAKEWORD(22)&wsock) != 0)
{
fprintf(stderr“WSAStartup() failed %d\n WSAGetLastError()“);
exit(0);
}
printf(“Initialised successfully.\n“);
//创建监听Socket
printf(“\nCreating TCP Socket...\n“);
if ((listensocket = socket(AF_INET SOCK_STREAM IPPROTO_TCP))
== INVALID_SOCKET)
{
printf(“Creation of socket failed %d\n“ WSAGetLastError());
WSACleanup();
return 0;
}
printf(“TCP Socket Created successfully.\n“);
//设置SOCKADDR_IN地址结构
serAddr.sin_family = AF_INET;
serAddr.sin_port = htons(PORT);
// serAddr.sin_addr.s_addr = INADDR_ANY;
serAddr.sin_addr.s_addr = inet_addr(ADDR);
//绑定套接字
if (bind(listensocket (SOCKADDR *)&serAddr
sizeof(serAddr))== SOCKET_ERROR)
{
printf(“bind failed with error %d\n“ WSAGetLastError());
closesocket(listensocket);
WSACleanup();
return 0;
}
//监听连接
if (listen(listensocket 5) == SOCKET_ERROR)
{
printf(“listen failed with error %d\n“ WSAGetLastError());
closesocket(listensocket);
WSACleanup();
return 0;
}
printf(“Waiting for a connection on port %d.\n“ PORT);
//接受连接
if ((newconnection = accept(listensocket (SOCKADDR *) &cliAddr
&cliAddrLen)) == INVALID_SOCKET)
{
printf(“accept failed with error %d\n“ WSAGetLastError());
closesocket(listensocket);
WSACleanup();
return 0;
}
printf(“successfully got a connection from %s:%d.\n“
inet_ntoa(cliAddr.sin_addr) ntohs(cliAddr.sin_port));
//此时可以继续监听新的连接,或者停止监听进行数据收发
closesocket(listensocket);
printf(“Waiting to receive data...\n“);
memset(buf0sizeof(buf));
for(int i=0;;i++)
{
if ((nRet = recv(newconnection buf sizeof(buf) 0))
== SOCKET_ERROR)
{
printf(“recv failed with error %d\n“ WSAGetLastError());
closesocket(newconnection);
WSACleanup();
return 0;
}
//显示接收到的数据
printf(buf);
printf(“\n“);
//若发现exit,则退出处理循环
if(strncmp(buf“exit“sizeof(“exit“))==0)
{
printf(“exit the receiving loop\n“);
break;
}
if((nRet = send(newconnectionbufstrlen(buf)0))
==SOCKET_ERROR)
{
printf(“send failed with error %d\n“ WSAGetLastError());
}
}
//关闭已连接套接字
closesocket(newconnection);
WSACleanup();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 172089 2014-04-21 18:08 实验4-基于socket的简单网络程序设计\Codes\nTcpServer\Debug\nTcpServer.exe
文件 189992 2014-04-21 18:08 实验4-基于socket的简单网络程序设计\Codes\nTcpServer\Debug\nTcpServer.ilk
文件 18299 2014-04-21 18:08 实验4-基于socket的简单网络程序设计\Codes\nTcpServer\Debug\nTcpServer.obj
文件 353280 2014-04-21 18:08 实验4-基于socket的简单网络程序设计\Codes\nTcpServer\Debug\nTcpServer.pdb
文件 140288 2014-04-21 18:08 实验4-基于socket的简单网络程序设计\Codes\nTcpServer\Debug\vc60.idb
文件 77824 2014-04-21 18:08 实验4-基于socket的简单网络程序设计\Codes\nTcpServer\Debug\vc60.pdb
文件 2820 2014-04-21 18:08 实验4-基于socket的简单网络程序设计\Codes\nTcpServer\nTcpServer.cpp
文件 4332 2014-04-21 18:08 实验4-基于socket的简单网络程序设计\Codes\nTcpServer\nTcpServer.dsp
文件 526 2014-04-21 18:07 实验4-基于socket的简单网络程序设计\Codes\nTcpServer\nTcpServer.dsw
文件 33792 2014-04-21 18:09 实验4-基于socket的简单网络程序设计\Codes\nTcpServer\nTcpServer.ncb
文件 48640 2014-04-21 18:09 实验4-基于socket的简单网络程序设计\Codes\nTcpServer\nTcpServer.opt
文件 906 2014-04-21 18:08 实验4-基于socket的简单网络程序设计\Codes\nTcpServer\nTcpServer.plg
文件 176187 2014-04-21 18:09 实验4-基于socket的简单网络程序设计\Codes\ntTcpClient\Debug\ntTcpClient.exe
文件 192400 2014-04-21 18:09 实验4-基于socket的简单网络程序设计\Codes\ntTcpClient\Debug\ntTcpClient.ilk
文件 18536 2014-04-21 18:09 实验4-基于socket的简单网络程序设计\Codes\ntTcpClient\Debug\ntTcpClient.obj
文件 451584 2014-04-21 18:09 实验4-基于socket的简单网络程序设计\Codes\ntTcpClient\Debug\ntTcpClient.pdb
文件 148480 2014-04-21 18:09 实验4-基于socket的简单网络程序设计\Codes\ntTcpClient\Debug\vc60.idb
文件 77824 2014-04-21 18:09 实验4-基于socket的简单网络程序设计\Codes\ntTcpClient\Debug\vc60.pdb
文件 2346 2014-04-21 18:09 实验4-基于socket的简单网络程序设计\Codes\ntTcpClient\ntTcpClient.cpp
文件 4344 2014-04-21 17:57 实验4-基于socket的简单网络程序设计\Codes\ntTcpClient\ntTcpClient.dsp
文件 528 2014-04-21 17:56 实验4-基于socket的简单网络程序设计\Codes\ntTcpClient\ntTcpClient.dsw
文件 41984 2014-04-21 18:10 实验4-基于socket的简单网络程序设计\Codes\ntTcpClient\ntTcpClient.ncb
文件 53760 2014-04-21 18:10 实验4-基于socket的简单网络程序设计\Codes\ntTcpClient\ntTcpClient.opt
文件 1365 2014-04-21 18:09 实验4-基于socket的简单网络程序设计\Codes\ntTcpClient\ntTcpClient.plg
文件 176185 2014-04-21 18:25 实验4-基于socket的简单网络程序设计\Codes\nUdpClient\Debug\nUdpClient.exe
文件 188844 2014-04-21 18:25 实验4-基于socket的简单网络程序设计\Codes\nUdpClient\Debug\nUdpClient.ilk
文件 16826 2014-04-21 18:24 实验4-基于socket的简单网络程序设计\Codes\nUdpClient\Debug\nUdpClient.obj
文件 361472 2014-04-21 18:25 实验4-基于socket的简单网络程序设计\Codes\nUdpClient\Debug\nUdpClient.pdb
文件 140288 2014-04-21 18:25 实验4-基于socket的简单网络程序设计\Codes\nUdpClient\Debug\vc60.idb
文件 77824 2014-04-21 18:24 实验4-基于socket的简单网络程序设计\Codes\nUdpClient\Debug\vc60.pdb
............此处省略29个文件信息
- 上一篇:鱼雷尾追弹道.rar
- 下一篇:ship.bmp
相关资源
- 西南科技大学windows网络程序设计实验
- 基于socket的联网五子棋游戏源码
- 基于socket的聊天系统设计
- TCP/IP网络程序设计-多人聊天系统
- Linxu网络程序设计.rar
- 网络课程设计
- linux环境下基于socket通信的ftp系统
- 基于socket的聊天程序报告
- 基于socket的一个简单的server和client
- 基于Socket的网络聊天软件设计与实现
- 基于socket的聊天工具源码包含Makefil
- 基于socket的多文件传输
- 基于socket的计算器
- Linux聊天程序源代码 基于socket的TC
- 网络程序设计综合实验
- 基于socket聊天程序编写实验报告
- udp通信 实验报告
- 网络程序设计实验报告
- 网络程序设计,客户端代码,服务器
评论
共有 条评论