实验一、二 TCP/UDP应用程序实现
一、实验目的和任务
1、掌握网络的基本应用。
2、掌握Socket编程。
3、掌握TCP和UDP的编程模型。
二、实验内容
实验一:
1、编写程序获得本机的主机名称和IP地址。
2、编写程序实现网络聊天(使用UDP+多线程)。
试验二:
3、编写程序实现网络传输文件(使用TCP套接字)。
三、实验步骤
[实验1步骤]
1、建立基于对话框的程序,参考界面。
2、参考代码如下:
char szHostName[128];
WSADATA wsaData;
WSAStartup(MAKEWORD(1,1),&wsaData);
if( gethostname(szHostName, 128) == 0 )
{
(szHostName);
struct hostent * pHost;
int i;
pHost = gethostbyname(szHostName);
for( i = 0; pHost!= NULL && pHost->h_addr_list[i]!= NULL; i++ )
{
char str[100];
char addr[20];
int j;
LPCSTR psz=inet_ntoa (*(struct in_addr *)pHost->h_addr_list[i]);
(psz);
}
}
WSACleanup();
[实验2步骤]
1、新建一个基于对话框的应用程序,参考界面如下。
2、建立对话框类的成员变量:
sockaddr_in m_srv;
sockaddr_in m_client;
SOCKET m_socket;
//和控件关联的变量
CListBox m_list;
CString m_msg;
CString m_destip;
int m_destport;
CString m_hostip;
int m_hostport;
3、建立监听开始,参考代码如下:
UpdateData();
= ;
= inet_addr( m_hostip);
= htons( m_hostport );
m_socket = socket(, SOCK_DGRAM, 0);
if( bind(m_socket,(struct sockaddr *)&m_srv,sizeof(m_srv)) !=0 )
{
AfxMessageBox("绑定IP和端口失败!");
return;
}
AfxBeginThread(thread,0,0,0,NULL);
4、建立线程处理函数,参考代码如下:(改函数在头文件中,UINT前加static)
UINT thread(LPVOID v)
{
CChat_UdpDlg *dlg=(CChat_UdpDlg*) AfxGetApp()->GetMainWnd();
实验一二TCPUDP应用程序实现 来自淘豆网www.taodocs.com转载请标明出处.