#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define SERVER_PORT 5432
#define MAX_LINE 256
int main(int argc, char * argv[])
{
FILE *fp;
struct hostent *hp;
struct sockaddr_in sin;
char *host;
char buf[MAX_LINE];
int s;
int len;
if (argc==2) {
host = argv[1];
}
else {
fprintf(stderr, "usage: simplex-talk host\n");
exit(1);
}
/* translate host name into peer’s IP address */
hp = gethostbyname(host);
if (!hp) {
fprintf(stderr, "simplex-talk: unknown host: %s\n", host);
exit(1);
}
/* build address data structure */
bzero((char *)&sin, sizeof(sin));
sin.sin_family = AF_INET;
bcopy(hp->h_addr, (char *)&sin.sin_addr, hp->h_length);
sin.sin_port = htons(SERVER_PORT);
/* active open */
if ((s = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
perror("simplex-talk: socket");
exit(1);
}
if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
perror("simplex-talk: connect");
close(s);
exit(1);
}
/* main loop: get and send lines of text */
while (fgets(buf, sizeof(buf), stdin)) {
buf[MAX_LINE-1] = '\0';
len = strlen(buf) + 1;
send(s, buf, len, 0);
}
}
Post your initial response to the Discussion Questions by midnight on Thursday. Then by Sunday at midnight CST/CDT you must provide a substantive response to two or more classmates' posts. Use the concepts learned from the text as well as from outside sources (at least two [2] are required) for compiling the response to each Discussion Question. Cite the sources used in the Discussion Question posting as well as in the peer responses IAW APA Format.
Important: Your grade for the responses you post in our Discussion Area will be determined not only by your responses to the assignment questions, but also by your responses to your fellow students' postings. Be sure to reply to at least one posting for each Discussion Question. Otherwise, five points will be deducted from your grade.
Discussion Questions
(Two questions from Chapter 6)
1. What industry forces might cause a propitious niche to appear or disappear?
The environment or industry changes. The company or SBU continues to make its products or services but the size of the market changes. The company or SBU changes. The same market demand continues for some specific products or services but the company or SBU itself changes so that there is no longer asynchronization between itself and the market. If a company or SBU loses its niche, it is likely to get much less profitable unless it gets a new niche. The specifics of what might happen depends upon how the company had lost its niche. The possibilities of class discussion can be almost endless.
2. What does a business have to consider when trying to follow a cost leadership strategy and a differentiation strategy simultaneously? Can you name a company doing this?
A cost leadership strategy is a “company’s ability to design, produce, and market a comparable product more efficiently than t ...
1. #include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define SERVER_PORT 5432
#define MAX_LINE 256
int main(int argc, char * argv[])
{
FILE *fp;
struct hostent *hp;
struct sockaddr_in sin;
char *host;
char buf[MAX_LINE];
int s;
int len;
if (argc==2) {
host = argv[1];
}
else {
fprintf(stderr, "usage: simplex-talk hostn");
exit(1);
}
/* translate host name into peer’s IP address */
hp = gethostbyname(host);
if (!hp) {
fprintf(stderr, "simplex-talk: unknown host: %sn",
host);
exit(1);
}
/* build address data structure */
2. bzero((char *)&sin, sizeof(sin));
sin.sin_family = AF_INET;
bcopy(hp->h_addr, (char *)&sin.sin_addr, hp->h_length);
sin.sin_port = htons(SERVER_PORT);
/* active open */
if ((s = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
perror("simplex-talk: socket");
exit(1);
}
if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
perror("simplex-talk: connect");
close(s);
exit(1);
}
/* main loop: get and send lines of text */
while (fgets(buf, sizeof(buf), stdin)) {
buf[MAX_LINE-1] = '0';
len = strlen(buf) + 1;
send(s, buf, len, 0);
}
}
Post your initial response to the Discussion Questions by
midnight on Thursday. Then by Sunday at midnight CST/CDT
you must provide a substantive response to two or
more classmates' posts. Use the concepts learned from the text
as well as from outside sources (at least two [2] are required)
for compiling the response to each Discussion Question. Cite
the sources used in the Discussion Question posting as well as
in the peer responses IAW APA Format.
Important: Your grade for the responses you post in our
Discussion Area will be determined not only by your responses
to the assignment questions, but also by your responses to your
fellow students' postings. Be sure to reply to at least one
posting for each Discussion Question. Otherwise, five points
3. will be deducted from your grade.
Discussion Questions
(Two questions from Chapter 6)
1. What industry forces might cause a propitious niche to appear
or disappear?
The environment or industry changes. The company or SBU
continues to make its products or services but the size of the
market changes. The company or SBU changes. The same
market demand continues for some specific products or services
but the company or SBU itself changes so that there is no longer
asynchronization between itself and the market. If a company or
SBU loses its niche, it is likely to get much less profitable
unless it gets a new niche. The specifics of what might happen
depends upon how the company had lost its niche. The
possibilities of class discussion can be almost endless.
2. What does a business have to consider when trying to follow
a cost leadership strategy and a differentiation strategy
simultaneously? Can you name a company doing this?
A cost leadership strategy is a “company’s ability to design,
produce, and market a comparable product more efficiently than
their competitors (Wheelen 2015).” A differentiation strategy is
a “company’s ability to provide unique and superior value to the
buyer in terms of product quality, special features, and after -
sale service (Wheelen 2015).” With that, if a business decides
to follow these two strategies simultaneously, it has to plan.
After finding a niche market, the company would need to
determine what price would be the most profitable for their
company as well as find a product that offers differentiation
(Thakur, 2014). An example of a company that does this is
Apple with their Iphones. In the electronic market, Apple and
Microsoft are dominating companies and they are often both
looking for ways to differentiate their product, while also
4. keeping their prices reasonable. With Apple, they offer product
quality as well as Apple only software including FaceTime and
Siri.
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define SERVER_PORT 5432
#define MAX_PENDING 5
#define MAX_LINE 256
int main()
{
struct sockaddr_in sin;
char buf[MAX_LINE];
int len;
int s, new_s;
/* build address data structure */
bzero((char *)&sin, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_port = htons(SERVER_PORT);
/* setup passive open */
if ((s = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
perror("simplex-talk: socket");
exit(1);
}
if ((bind(s, (struct sockaddr *)&sin, sizeof(sin))) < 0) {
perror("simplex-talk: bind");
exit(1);
}
listen(s, MAX_PENDING);
5. /* wait for connection, then receive and print text */
while(1) {
if ((new_s = accept(s, (struct sockaddr *)&sin, &len))
< 0) {
perror("simplex-talk: accept");
exit(1);
}
while (len = recv(new_s, buf, sizeof(buf), 0))
fputs(buf, stdout);
close(new_s);
}
}
/* server.c - code for example server program that uses TCP */
#ifndef unix
#define WIN32
#include <windows.h>
#include <winsock.h>
#else
#define closesocket close
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#endif
#include <stdio.h>
#include <string.h>
#define PROTOPORT 5193 /* default protocol port number */
#define QLEN 6 /* size of request queue */
int visits = 0; /* counts client connections */
/*------------------------------------------------------------------------
* * Program: server
* *
* * Purpose: allocate a socket and then repeatedly execute the
6. following:
* * (1) wait for the next connection from a client
* * (2) send a short message to the client
* * (3) close the connection
* * (4) go back to step (1)
* * Syntax: server [ port ]
* *
* * port - protocol port number to use
* *
* * Note: The port argument is optional. If no port is specified,
* * the server uses the default given by PROTOPORT.
* *
* *----------------------------------------------------------------------
--
* */
main(argc, argv)
int argc;
char *argv[];
{
struct hostent *ptrh; /* pointer to a host table entry */
struct protoent *ptrp; /* pointer to a protocol table entry */
struct sockaddr_in sad; /* structure to hold server.s
address */
struct sockaddr_in cad; /* structure to hold client.s address
*/
int sd, sd2; /* socket descriptors */
int port; /* protocol port number */
int alen; /* length of address */
char buf[1000]; /* buffer for string the server sends */
#ifdef WIN32
WSADATA wsaData;
WSAStartup(0x0101, &wsaData);
#endif
memset((char *)&sad,0,sizeof(sad)); /* clear sockaddr
structure */
sad.sin_family = AF_INET; /* set family to Internet */
7. sad.sin_addr.s_addr = INADDR_ANY; /* set the local IP
address */
/* Check command-line argument for protocol port and
extract */
/* port number if one is specified. Otherwise, use the
default */
/* port value given by constant PROTOPORT */
if (argc > 1) { /* if argument specified */
port = atoi(argv[1]); /* convert argument to binary */
} else {
port = PROTOPORT; /* use default port number */
}
if (port > 0) /* test for illegal value */
sad.sin_port = htons((u_short)port);
else { /* print error message and exit */
fprintf(stderr,"bad port number %sn",argv[1]);
exit(1);
}
/* Map TCP transport protocol name to protocol number */
if ( ((int)(ptrp = getprotobyname("tcp"))) == 0) {
fprintf(stderr, "cannot map "tcp" to protocol
number");
exit(1);
}
/* Create a socket */
sd = socket(PF_INET, SOCK_STREAM, ptrp->p_proto);
if (sd < 0) {
fprintf(stderr, "socket creation failedn");
exit(1);
}
/* Bind a local address to the socket */
if (bind(sd, (struct sockaddr *)&sad, sizeof(sad)) < 0) {
fprintf(stderr,"bind failedn");
exit(1);
}
/* Specify size of request queue */
8. if (listen(sd, QLEN) < 0) {
fprintf(stderr,"listen failedn");
exit(1);
}
/* Main server loop - accept and handle requests */
while (1) {
alen = sizeof(cad);
if ( (sd2=accept(sd, (struct sockaddr *)&cad, &alen))
< 0) {
fprintf(stderr, "accept failedn");
exit(1);
}
visits++;
sprintf(buf,"This server has been contacted %d
time%sn",
visits,visits==1?".":"s.");
send(sd2,buf,strlen(buf),0);
closesocket(sd2);
}
}
/* client.c - code for example client program that uses TCP */
#ifndef unix
#define WIN32
#include <windows.h>
#include <winsock.h>
#else
#define closesocket close
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#endif
#include <stdio.h>
9. #include <string.h>
#define PROTOPORT 5193 /* default protocol port number */
extern int errno;
char localhost[] = "localhost"; /* default host name */
/*------------------------------------------------------------------------
* * Program: client
* *
* * Purpose: allocate a socket, connect to a server, and print all
output
* * Syntax: client [ host [port] ]
* *
* * host - name of a computer on which server is executing
* * port - protocol port number server is using
* *
* * Note: Both arguments are optional. If no host name is
specified,
* * the client uses "localhost"; if no protocol port is
* * specified, the client uses the default given by
PROTOPORT.
* *
* *----------------------------------------------------------------------
--
* */
main(argc, argv)
int argc;
char *argv[];
{
struct hostent *ptrh; /* pointer to a host table entry */
struct protoent *ptrp; /* pointer to a protocol table entry */
struct sockaddr_in sad; /* structure to hold an IP address
*/
int sd; /* socket descriptor */
int port; /* protocol port number */
char *host; /* pointer to host name */
int n; /* number of characters read */
char buf[1000]; /* buffer for data from the server */
10. #ifdef WIN32
WSADATA wsaData;
WSAStartup(0x0101, &wsaData);
#endif
memset((char *)&sad,0,sizeof(sad)); /* clear sockaddr
structure */
sad.sin_family = AF_INET; /* set family to Internet */
/* Check command-line argument for protocol port and
extract */
/* port number if one is specified. Otherwise, use the
default */
/* port value given by constant PROTOPORT */
if (argc > 2) { /* if protocol port specified */
port = atoi(argv[2]); /* convert to binary */
} else {
port = PROTOPORT; /* use default port number */
}
if (port > 0) /* test for legal value */
sad.sin_port = htons((u_short)por t);
else { /* print error message and exit */
fprintf(stderr,"bad port number %sn",argv[2]);
exit(1);
}
/* Check host argument and assign host name. */
if (argc > 1) {
host = argv[1]; /* if host argument specified */
} else {
host = localhost;
}
/* Convert host name to equivalent IP address and copy to
sad. */
ptrh = gethostbyname(host);
if ( ((char *)ptrh) == NULL ) {
fprintf(stderr,"invalid host: %sn", host);
exit(1);
}
11. memcpy(&sad.sin_addr, ptrh->h_addr, ptrh->h_length);
/* Map TCP transport protocol name to protocol number.
*/
if ( ((int)(ptrp = getprotobyname("tcp"))) == 0) {
fprintf(stderr, "cannot map "tcp" to protocol
number");
exit(1);
}
/* Create a socket. */
sd = socket(PF_INET, SOCK_STREAM, ptrp->p_proto);
if (sd < 0) {
fprintf(stderr, "socket creation failedn");
exit(1);
}
/* Connect the socket to the specified server. */
if (connect(sd, (struct sockaddr *)&sad, sizeof(sad)) < 0) {
fprintf(stderr,"connect failedn");
exit(1);
}
/* Repeatedly read data from socket and write to user.s
screen. */
n = recv(sd, buf, sizeof(buf), 0);
while (n > 0) {
write(1,buf,n);
printf("n: %dn", n);
n = recv(sd, buf, sizeof(buf), 0);
}
printf("n: %dn", n);
/* Close the socket. */
closesocket(sd);
/* Terminate the client program gracefully. */
exit(0);
}