📄 tklistener.cc
字号:
#include <stdlib.h>#include <unistd.h>#include <sys/time.h>#include <pthread.h>#include <fstream.h>#include <string>#include <sys/socket.h>#include "coop-agent.h"int pkt_cnt = 1;ofstream out;string getLine(int sock) { string ret; char c; int recv_len; while((recv_len = recv(sock, &c, 1, 0)) == 1) { ret += c; if(c == '\n') break; } return ret;}string getMsg(int sock) { string ret, line; while(1) { line = getLine(sock); ret += line; if(line == "EOL\n") break; } return ret;}void packet_handler(char* msg, int len) { out << pkt_cnt++ << endl; out << flush;}void* thread_start(void* arg) { coopAgent* agent = (coopAgent*)arg; agent->start(); return NULL;}int main(int argc, char ** argv) { if (argc != 4) { printf("usage: %s < agent id > < port num > < bse host name >\n", argv[0]); exit(0); } pthread_t thread; struct timeval tv; char time[10]; char filename[30]; strcpy(filename, "listener"); gettimeofday(&tv, NULL); sprintf(time, "%d", (int)tv.tv_sec); strcat(filename, time); strcat(filename, ".txt"); coopAgent mycoop; out.open(filename, ios::out); if(out.fail()) { cout << "error opening file for writing" << endl; exit(0); } mycoop.init(atoi(argv[1]),0,atoi(argv[2]), argv[3]); mycoop.add_listening_fd(mycoop.udp_sock, packet_handler); initTimeout(); pthread_create(&thread, NULL, thread_start, &mycoop); printf("my coop started\n"); pthread_join(thread, NULL); return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -