1Boost之TCP,Client and Server
客戶端代碼
#include <boost/asio.hpp>
#include <iostream>
#include <stdlib.h>
?
using namespace std;
using namespace boost::asio;
?
void main()
{
??? io_service iosev;
??? ip::tcp::socket mysorket(iosev);
??? ip::tcp::endpoint ep(ip::address_v4::from_string("127.0.0.1"), 1100);
?
??? boost::system::error_code ec;
??? mysorket.connect(ep, ec);//鏈接
?
??? while (1)
??? {
??????? char str[1024] = { 0 };
??????? cout << "請輸入";
??????? cin >> str;
??????? cout << endl;
??????? mysorket.write_some(buffer(str), ec);
??????? memset(str, 0, 1024);//清空字符串
??????? mysorket.read_some(buffer(str), ec);
??????? cout << "收到" << str << endl;
??? }
?
??? cin.get();
}
客戶端代碼:
服務器端代碼:
#include <boost/asio.hpp>
#include <iostream>
#include <stdlib.h>
?
using namespace std;
using namespace boost::asio;
?
void main()
{
??? io_service iosev;
??? //這里使用ip v4協議,端口號是1100
??? ip::tcp::acceptor myacceptor(iosev, ip::tcp::endpoint(ip::tcp::v4(), 1100));
??? while (1)
??? {
??????? //構建TCP
??????? ip::tcp::socket mysocket(iosev);
??????? //接受套接字
??????? myacceptor.accept(mysocket);
??????? cout << "客戶端" << mysocket.remote_endpoint().address() << ":"
??????????? << mysocket.remote_endpoint().port() << "鏈接上" << endl;
?
??????? char recestr[1024] = { 0 };
??????? boost::system::error_code ec;
??????? //處理網絡異常
??????? int length = mysocket.read_some(buffer(recestr), ec);
??????? cout << "收到" << recestr << "長度" << length << endl;
??????? system(recestr);
??????? length = mysocket.write_some(buffer(recestr, length), ec);
??????? cout << "發送報文長度" << length << endl;
??? }
??? cin.get();
}
運行結果:
?
總結
以上是生活随笔為你收集整理的1Boost之TCP,Client and Server的全部內容,希望文章能夠幫你解決所遇到的問題。